由于Yuku和Brett提到的InsertHelper现在已经弃用 (API级别为17),因此谷歌推荐的正确替代方法似乎是使用SQLiteStatement。
我像这样使用数据库插入方法:
database.insert(table, null, values);
我也遇到了性能问题,但使用下面的代码后,我的 500 次插入速度从 14.5 秒 提升至仅需 270 毫秒,太神奇了!
以下是我使用 SQLiteStatement 的方法:
private void insertTestData() {
String sql = "insert into producttable (name, description, price, stock_available) values (?, ?, ?, ?);";
dbHandler.getWritableDatabase();
database.beginTransaction();
SQLiteStatement stmt = database.compileStatement(sql);
for (int i = 0; i < NUMBER_OF_ROWS; i++) {
stmt.bindString(1, randomName);
stmt.bindString(2, randomDescription);
stmt.bindDouble(3, randomPrice);
stmt.bindLong(4, randomNumber);
long entryID = stmt.executeInsert();
stmt.clearBindings();
}
database.setTransactionSuccessful();
database.endTransaction();
dbHandler.close();
}