我有一个数据库导入过程,其中有一个与表对应的文件列表。这些文件是填充数据的简单csv文本文件。
我想通过使用批量插入来加速数据导入,因此我有以下方法:
private void bulkInsert(String tableName) {
String sql = "INSERT INTO "+ tableName +" VALUES (?,?,?);";
SQLiteStatement statement = sampleDB.compileStatement(sql);
sampleDB.beginTransaction();
for (int i = 0; i<100; i++) {
statement.clearBindings();
statement.bindLong(1, i);
statement.bindLong(2, i);
statement.bindLong(3, i*i);
statement.execute();
}
sampleDB.setTransactionSuccessful();
sampleDB.endTransaction();
}
上述方法不是我目前使用的方法。在方法中。我有3列long
类型的列。
但是,由于我有不同数据类型列的不同表,是否可以推广上述方法?也许迭代列并得到类型?
修改
bindAllArgsAsStrings
会有效吗?存储在列中的数据可能是text
,integer
或real
。我的数据中可能还有NULL
个值。