android 使用数据库事务提高操作效率
16lz
2021-01-23
//删除多条数据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次事务。而当自身使用显式的数据库事务时,这些删除数据的操作,就在一次数据库事务中执行,从而在删除(插入、更新)数据特别大的时候大大的提高效率。
更多相关文章
- Android Post图片和数据
- Android 使用SharedPreferences数据存储
- Android 获取剪切板第一条数据
- Android 手机端与服务端POST数据交互类
- java后台接收android客户端通过http方式发送的数据
- Android实现动态切换横竖屏,保存横竖屏数据(用Preference存储)
- android添加联系人(直接添加到联系人数据库)