使用批插入插入大量的數據。下面是代碼:
在你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