使用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();

}

最新文章

  1. (转)POJ题目分类
  2. JProfiler8 注册码序列号
  3. for 与 foreach 性能
  4. bzoj 1132 POI2008 Tro
  5. 巧用TAG属性保存对象的指针
  6. JS小技巧大本事(持续更新)
  7. POP动画引擎中Layer与CALayer的一点区别
  8. 你需要知道的九大排序算法【Python实现】之快速排序
  9. 循序渐进Socket网络编程(多客户端、信息共享、文件传输)
  10. 用JSON 和 Google 实现全文翻译
  11. MFC消息映射的原理:笔记
  12. 自定义实现IEnumerable
  13. Python的类与类型
  14. [Winfrom] 使用一个启动快捷方式,打开2个不同的窗体并且共用一个缓存空间
  15. 1.1.5 PROB Friday the Thirteenth
  16. 提取Chrome插件为crx文件
  17. JavaStrip和python的变量存储位置
  18. 处理jquery的ajax请求session过期跳转到登录页面
  19. Http站点转Https站点教程
  20. java链表知识点总结

热门文章

  1. 设置NODE_ENV=test环境变量
  2. UVA 12686 Trending Topic
  3. print pdf bug & DOCTYPE
  4. SpringBoot @ConditionalOnBean、@ConditionalOnMissingBean注解源码分析与示例
  5. sqlacodegen
  6. Oracle GV$VIEW
  7. 程序员之---C语言细节20(符号和有符号之间转换、两数相加溢出后数值计算)
  8. 如何下载youtube的视频
  9. 用JavaScript截图
  10. Intellij IDEA报错:Could not save application settings: java.io.IOException: java.lang.AssertionError: Unexpected content storage modificat