由于Yuku和Brett提到的InsertHelper 已被弃用(API级别17),因此Google推荐的正确选择似乎是使用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++) {
//generate some values
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();
}