当我第一次运行应用程序时,我想创建一个表并在表中输入一些行。为此,我编写了这段代码并且工作正常:
//Creating the table
db.execSQL(MRM_BOOKING_LOGIN_TABLE_CREATE);
//Setting the values in the table
ContentValues contentValuesLogin = new ContentValues();
contentValuesLogin.put(USER_ID, "asdf");
contentValuesLogin.put(PASSWORD, "1234");
//Inserting a row in the table
db.insert(MRM_BOOKING_LOGIN_TABLE, null, contentValuesLogin);
但我想在表格中输入至少15到20行。每次插入一行后,我会清除ContentValues对象(或创建ContentValues的另一个对象)并在新创建的表中输入另一行,这是一个好主意吗?这样,代码行也会增加很多。我相信可能还有其他更好的替代方法来做同样的事情。请建议
此致
答案 0 :(得分:2)
我认为,通过db.insert
插入多个记录的唯一方法是使用循环。将它与SQLite 交易结合起来,它将加快这一过程。
答案 1 :(得分:2)
示例代码:
try {
// open the database
db.beginTransaction();
for (your objects) {
ContentValues cv = new ContentValues();
cv.put(COL1, obj.p1);
cv.put(COL2, obj.p2);
//.....
long id = db.insertOrThrow(DATABASE_TABLE, COL_Id, cv);
}
db.setTransactionSuccessful();
} catch (Exception e) {
throw e;
} finally {
db.endTransaction();
// close database
}
答案 2 :(得分:-1)
您可以使用ContentResolver.bulkInsert (Uri url, ContentValues[] values)
插入多行。
可以从这里获得更多信息:
Insertion of thousands of contact entries using applyBatch is slow
希望这会对你有所帮助。