使用批插入插入大量的数据。下面是代码:
在你databaseHelper:
public void batchInsert(String sql, ArrayList<String[]> values) {
SQLiteDatabase db = getWritableDatabase();
db.beginTransaction();
SQLiteStatement stmt = db.compileStatement(sql);
for (int i = 0; i < values.size(); i++) {
String[] record = values.get(i);
for (int ii = 0; ii < record.length; ii++) {
stmt.bindString(ii + 1, record[ii]);
}
stmt.execute();
stmt.clearBindings();
}
db.setTransactionSuccessful();
db.endTransaction();
db.close();
}
在你的活动:
ArrayList<String[]> dataBatch = new ArrayList<String[]>();
int x = 0;
for (Data data : dataList) {
String[] dataArray = { data.getData1(),data.getData2(),data.getData2() };
dataBatch.add(questionsArray);
}
String sql = "INSERT INTO data ";
sql += "(data1, data2, data3) ";
sql += "VALUES (?,?,?)";
DatabaseHelper dbhelper = new DatabaseHelper(context);
dbhelper.batchInsert(sql, dataBatch);
基本上你对databaseHelper执行可以是不同的。但多数民众赞成如何批量插入大量的数据。
位于服务器上的主数据库? – icaneatclouds
没有这两个数据库的文件在Android设备的文件夹中。 –
为什么不尝试批量插入?它会大大减少插入时间.. – icaneatclouds