Android开发中的SQLite事务处理,即beginTransaction()方法
来源:互联网 发布:为什么淘宝没有斐讯 编辑:程序博客网 时间:2024/06/08 13:05
使用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();
}
使用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();
}
- Android开发中的SQLite事务处理,即beginTransaction()方法...
- Android开发中的SQLite事务处理,即beginTransaction()方法
- Android开发中的SQLite事务处理,即beginTransaction()方法
- Android开发中的SQLite事务处理,即beginTransaction()方法
- Android开发中的SQLite事务处理,即beginTransaction()方法
- Android开发中的SQLite事务处理,即beginTransaction()方法
- Android开发中的SQLite事务处理,即beginTransaction()方法...
- Android开发中的SQLite事务处理,即beginTransaction()方法
- Android开发中的SQLite事务处理,即beginTransaction()方法...
- Android开发中的SQLite事务处理
- Android SQLite 事务处理 Operation SQLite
- Android SQLite 事务处理
- Android SQLite 事务处理
- Android SQLite 事务处理
- Android SQLite 事务处理
- Android SQLite 事务处理
- Android SQLite 事务处理
- Android SQLite 事务处理
- L脚本语言的全局函数
- 技术文章网址
- HttpUrlConnection的setDoOutput与setDoInput的区别
- 内存分析工具MAT使用教程
- 如何获取经纬度之间两点间真实距离(适用于GoogleMap,BaiduMap,Amap等)
- Android开发中的SQLite事务处理,即beginTransaction()方法
- 《剑指Offer——跳台阶》
- 机器学习实战 决策树
- Java 读取和删除目录路径下所有文件的方法
- 颠覆传统企业管理模式,协同办公引领进化风暴
- C#中split的方法和用法
- Beginners Level Course:The mkdir and rmdir commands
- CrawlScript语言————一门用javascript语法在JAVA环境下,快捷开发网络爬虫的脚本语言
- 下拉刷新简单模拟