//删除多条数据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创建和删除桌面快捷方式
  2. Android对Window对象的管理机制分析
  3. Android(安卓)ContentObserver ---拦截短信并删除
  4. android 开发 实例 下部主导航(1)
  5. Android桌面快捷方式的实现
  6. Android(安卓)自定义Listview 如何绑定Sqlite数据库数据
  7. Android(安卓)webview监听网页对话框点击事件
  8. Crazy Android(安卓)Note Chapter-8
  9. Android(安卓)开发中使用 SQLite 数据库

随机推荐

  1. Android程序实现全屏代码
  2. android开发学习笔记(1)我的第一个android
  3. The connection to adb is down, and a s
  4. Android入门教程(二十七)------之Style与
  5. Android控件之ProgressBar
  6. SSH服务器与Android通信(2)--Android客户
  7. Android(安卓)监听EdiText 检测输入银行
  8. Android实现拍照、录像、录音代码范例
  9. Android实现截屏的方法
  10. Android 布局中的android:onClick的使用