如何在Android SQLite中插入许多行

问题描述 投票:0回答:2

我正在使用Android中的SQLite制作应用。

我想在表中插入500行,但是我真的不知道如何插入很多行。我试图通过输入dbInsert()代码插入10行,但是输入500行却花费了大量代码,这使我的应用程序运行缓慢。这些是我的代码。

 public WordDBRecord open() throws SQLException {
    dbHelper = new WordDBHelper(context, "WordDB", null, 1);
    database = dbHelper.getWritableDatabase();

    dbInsert("KeyWordDB", "Movie", "Terminator");
    dbInsert("KeyWordDB","Sports","Soccer");
    dbInsert("KeyWordDB","City","BeiJing");
    dbInsert("KeyWordDB","Actor","Tom");
    dbInsert("KeyWordDB","NBA Player","MJ");

    return this;
}
  public void dbInsert(String tableName, String category, String word) {
    Log.d(TAG, "Insert Data ");

    ContentValues contentValues = new ContentValues();
    contentValues.put("CATEGORY", category);
    contentValues.put("WORD", word);

    long id = database.insert(tableName, null, contentValues);
    Log.d(TAG, "id: " + id);
}

我已经搜索了方法,但是大多数告诉我要使用ArrayList和for循环。但是,作为初学者,我不太了解这种方法。

所以我的问题是如何使用for循环或ArrayList插入500行?

如果有人回答我的问题,我将不胜感激。谢谢

android database sqlite android-sqlite android-database
2个回答

0
投票

代替使用SQLITE basic,您可以使用SQLITE转到它自己的ROOM DB。

可以在官方google developer page上找到所有详细信息>

此外,您也可以看一下here给出的漂亮示例。

您可以像整个数组列表一样一堆插入数据。

就像插入单个项目一样容易

 @Insert(onConflict = OnConflictStrategy.REPLACE) 
 void insertAllOrders(Order order); 

插入多个项目将是相同的

 @Insert(onConflict = OnConflictStrategy.REPLACE) 
 void insertAllOrders(List<Order> order); 

让我知道是否有帮助

© www.soinside.com 2019 - 2024. All rights reserved.