//删除多条数据public void deleteMoreRecord(ArrayList checkedRecords){//获取可写的数据库对象sqliteDatabase = dbHelper.getWritableDatabase();String sql = "delete from " + TABLE_NAME + " where id = ?";//预编译        SQLiteStatement stat = sqliteDatabase.compileStatement(sql);         //开始事务        sqliteDatabase.beginTransaction();          int length = checkedRecords.size();        AlarmRecordArch singleRecord = new AlarmRecordArch();        for (int i = 0;i < length;i ++) {              singleRecord = checkedRecords.get(i);            stat.bindLong(1, singleRecord.getIndex());            stat.executeUpdateDelete();        }          //事务成功完成,没有这句则事务会自动回滚        sqliteDatabase.setTransactionSuccessful();          //结束事务        sqliteDatabase.endTransaction();          sqliteDatabase.close();}

QUESTION: 为什么事务能够显著的提高数据库操作效率?

在整个数据库中,执行任何一类操作诸如sqliteDatabase.delete()都会创建一个数据库事务,存在这样一种影响效率的情况:需要一次删除N条数据,程序就会创建N次事务。而当自身使用显式的数据库事务时,这些删除数据的操作,就在一次数据库事务中执行,从而在删除(插入、更新)数据特别大的时候大大的提高效率。


更多相关文章

  1. Android Post图片和数据
  2. Android 使用SharedPreferences数据存储
  3. Android 获取剪切板第一条数据
  4. Android 手机端与服务端POST数据交互类
  5. java后台接收android客户端通过http方式发送的数据
  6. Android实现动态切换横竖屏,保存横竖屏数据(用Preference存储)
  7. android添加联系人(直接添加到联系人数据库)

随机推荐

  1. java实现电脑开关机
  2. Android(安卓)水波纹效果的探究
  3. 太火了!MyBatis Plus 为啥这么牛?
  4. HBase 底层原理详解(深度好文,建议收藏)
  5. 循环结构的继续学习
  6. 工作中常用到的Linux命令
  7. 太简单了!PHP获取文件扩展名的7中方法
  8. php中使用fsockopen实现异步请求(代码示例
  9. php实现将表单内容提交到数据库
  10. 流行的php rpc框架详解