Поскольку 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();
}