事务Transaction()详解(以及ContentValue的注意点)
2016-02-29 14:19
483 查看
概念:保证所有sql语句,要没一起成功,要么 一起失败 ;
设置 try语句块内部代码,取决于db.setTransactionSuccessful();如果执行到这条语句,那么会通过db.endTransaction()提交数据,如果中途发生意外,则不会提交数据;
案列:典型的案列---转账案列,一个扣钱,一个加钱,如果断电或者程序失败,那么都操作失败不会执行成功;
设置 try语句块内部代码,取决于db.setTransactionSuccessful();如果执行到这条语句,那么会通过db.endTransaction()提交数据,如果中途发生意外,则不会提交数据;
案列:典型的案列---转账案列,一个扣钱,一个加钱,如果断电或者程序失败,那么都操作失败不会执行成功;
public void transaction(View view){ SQLiteDatabase sqLiteDatabase=myOpenHelper.getWritableDatabase(); try{ //开启事务 sqLiteDatabase.beginTransaction(); ContentValues values=new ContentValues(); values.put("salary","12000"); sqLiteDatabase.update("person", values, "name =?", new String[]{"小智"}); //记得做values修改操作的时候,一定要clear()之前的数据,因为values会将上一个数据带到下一个 数据内部 values.clear(); values.put("salary", "2300"); sqLiteDatabase.update("paerson",values,"name=?",new String[]{"小明"});
//设置 事务执行成功 sqLiteDatabase.setTransactionSuccessful(); } finally {
//关闭事务 ,同时提交 ,如果设置事务执行成功,那么sql语句就生效了,如果 设置事务执行成功这条语句未执行,那么sql语句不会生效 sqLiteDatabase.endTransaction(); }
相关文章推荐
- iOS7——UIControlEventTouchDown延迟响应问题
- UIKit框架(9)控制器的modal切换方式(二)
- 简单的计时器动画实现-ValueAnimator
- UINavigationController之NavigationBar
- QT QPixmap:It is not safe to use Pixmaps outside the GUI thread
- UIKit框架(9)控制器的modal切换方式(一)
- codeforces 446A DZY Loves Sequences
- Confluence简介
- 腾讯精品文!超多干货的UI界面动效设计指南
- 国内UED网站大全
- iOS 中很多字体字符串UIFont
- UIViewAlertForUnsatisfiableConstraints
- UIKit框架(8)屏幕适配(二)
- 理解 Android Build 系统
- UITableView刷新指定section、cell
- 关于开源框架GPUImage 的简单说明
- UIKit框架(8)屏幕适配(一)
- UI控件常见的属性
- UINavigationController之Toolbar+ToolbarItems
- UE4的编译配置详解