您的位置:首页 > 产品设计 > UI/UE

事务Transaction()详解(以及ContentValue的注意点)

2016-02-29 14:19 483 查看
概念:保证所有sql语句,要没一起成功,要么 一起失败 ;

设置 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();
    }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: