Android批量插入数据 Android中在sqlite插入数据的时候默认一条语句就是一个事务(All individual SQL Statements, (with rare exceptions like Bulk Inserts with No Log, or Truncate Table) are automaticaly "In a Transaction" whether you explicitly say so or not.. (even if they insert, update, or delete millions of rows).),因此如果存在上万条数据插入的话,那就需要执行上万次插入操作,操作速度可想而知。因此在Android中插入数据时,使用批量插入的方式可以大大提高插入速度。
批量插入的模板如下:
[java] view plaincopyprint? 01.public void inertOrUpdateDateBatch(List<String> sqls) { 02. SQLiteDatabase db = getWritableDatabase(); 03. db.beginTransaction(); 04. try { 论文网 05. for (String sql : sqls) { 06. db.execSQL(sql); 07. } 08. // 设置事务标志为成功,当结束事务时就会提交事务 09. db.setTransactionSuccessful(); 10. } catch (Exception e) { 11. e.printStackTrace(); 12. } finally { 13. // 结束事务 14. db.endTransaction(); 15. db.close(); 16. } 17. } public void inertOrUpdateDateBatch(List<String> sqls) { SQLiteDatabase db = getWritableDatabase(); db.beginTransaction(); try { for (String sql : sqls) { db.execSQL(sql); } // 设置事务标志为成功,当结束事务时就会提交事务 db.setTransactionSuccessful(); } catch (Exception e) { e.printStackTrace(); } finally { // 结束事务 db.endTransaction(); db.close(); } }注意此处的:
[java] view plaincopyprint? 01.db.execSQL(sql); db.execSQL(sql);官方的API显示:
[1] [2] 下一页
|