Android开发中的SQLite事务处理,即beginTransaction()方法
2024-08-31 00:26:35
使用SQLiteDatabase的beginTransaction()方法可以开启一个事务,程序执行到endTransaction() 方法时会检查事务的标志是否为成功,如果程序执行到endTransaction()之前调用了setTransactionSuccessful() 方法设置事务的标志为成功则提交事务,如果没有调用setTransactionSuccessful()
方法则回滚事务。事务处理应用:很多时候我们需要批量的向Sqlite中插入大量数据时,单独的使用添加方法导致应用响应缓慢, 因为sqlite插入数据的时候默认一条语句就是一个事务,有多少条数据就有多少次磁盘操作。如初始8000条记录也就是要8000次读写磁盘操作。同时也是为了保证数据的一致性,避免出现数据缺失等情况。
SQLiteDatabase db = dbOpenHelper.getWritableDatabase();
//开启事务
db.beginTransaction();
try{
//批量处理操作
//do something
db.execSQL("SQL语句", new Object[]{});
db.execSQL("SQL语句", new Object[]{});
//设置事务标志为成功,当结束事务时就会提交事务
db.setTransactionSuccessful();
}
catch(Exception e){
}
finally{
//结束事务
db.endTransaction();
}
最新文章
- (转)POJ题目分类
- JProfiler8 注册码序列号
- for 与 foreach 性能
- bzoj 1132 POI2008 Tro
- 巧用TAG属性保存对象的指针
- JS小技巧大本事(持续更新)
- POP动画引擎中Layer与CALayer的一点区别
- 你需要知道的九大排序算法【Python实现】之快速排序
- 循序渐进Socket网络编程(多客户端、信息共享、文件传输)
- 用JSON 和 Google 实现全文翻译
- MFC消息映射的原理:笔记
- 自定义实现IEnumerable
- Python的类与类型
- [Winfrom] 使用一个启动快捷方式,打开2个不同的窗体并且共用一个缓存空间
- 1.1.5 PROB Friday the Thirteenth
- 提取Chrome插件为crx文件
- JavaStrip和python的变量存储位置
- 处理jquery的ajax请求session过期跳转到登录页面
- Http站点转Https站点教程
- java链表知识点总结
热门文章
- 设置NODE_ENV=test环境变量
- UVA 12686 Trending Topic
- print pdf bug &; DOCTYPE
- SpringBoot @ConditionalOnBean、@ConditionalOnMissingBean注解源码分析与示例
- sqlacodegen
- Oracle GV$VIEW
- 程序员之---C语言细节20(符号和有符号之间转换、两数相加溢出后数值计算)
- 如何下载youtube的视频
- 用JavaScript截图
- Intellij IDEA报错:Could not save application settings: java.io.IOException: java.lang.AssertionError: Unexpected content storage modificat