数据库事务处理机制
2016-06-08 16:24
302 查看
使用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();
}
原文地址:http://blog.csdn.net/luckyjda/article/details/8103372
方法则回滚事务。事务处理应用:很多时候我们需要批量的向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();
}
原文地址:http://blog.csdn.net/luckyjda/article/details/8103372
相关文章推荐
- MySQL5.6.11安装步骤(Windows7 64位)
- mysql登陆
- all mysql internel function
- mysql的root密码重置
- mysql配置讲解
- orcale切换mysql遇到的问题
- Oracle expdp/impdp 使用示例
- SQL中的DML、DDL以及DCL是什么?
- Entity Framework 数据库先行、模型先行、代码先行
- Flink sql的实现
- linux系统下设置oracle开机自动启动
- JAVA学习7:在Maven仓库中添加Oracle JDBC驱动
- QBC & 本地SQL 查询
- mysql server5.6.28 修改数据目录
- oracle自动分区设置
- Mysql中分区表的使用总结
- 常用的SQL语句
- MySQL快速删除所有表
- Oracle学习总结(四)——SELECT检索
- 如何rename sqlserver database