Android数据库事务操作

Android中的SQLite可以很好的支持事务操作,所谓的事务,就是指作为单个逻辑工作单元执行的一系列操作,要么完整地执行,要么完全不执行,不能执行某些操作,而不执行其他操作。打个比方,银行的转账操作,A转给B1000块钱,则A的账户中要扣除1000块,B的账户中要增加1000块,这两个行为要么都执行,要么都不执行,不能只执行其中一个操作。

使用Android的SQLite的事务也很简单,开始事务的时候需要调用beginTransaction();执行完一系列的数据库操作后,需要调用setTransactionSuccessful();最后需要调用endTransaction();这样就算成功的执行了依次数据库事务了,具体代码看下面:

假设有一张person表,里面有三个字段:id和name,balance,对balance执行更新操作,用数据库事务来完成:

public void testTransaction() {
             PersonSQLiteOpenHelper helper = new PersonSQLiteOpenHelper(getContext());
             SQLiteDatabase db = helper.getWritableDatabase();
             if (db.isOpen()) {
                   try {
                          db.beginTransaction();// 开启事务
                          // 减去1000
                          db.execSQL("update person set balance = balance - 1000 where name = 'zhangsan'");
                          // int result =10/0;
                          // 加上1000
                          db.execSQL("update person set balance = balance + 1000 where name = 'lisi'");
                          db.setTransactionSuccessful();// 标记事务成功
                   } catch (SQLException e) {
                          // TODO Auto-generated catch block
                          e.printStackTrace();
                   } finally {
                          db.endTransaction();
                   }
                   db.close();
             }
      }

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值