sqlite操作之数据库的事务

数据库的事务

我们经常在编写程序涉及到两个数据需要同时操作的时候,比如转账,这就有了这样的需求:一个人需要扣掉一1000块钱,另外一个人需要增加1000块钱,如果不做处理,很容易出现问题,比如:停电了。手机停电了,可能就出现了张三的钱被转走了,李四却没有收到钱,这种所涉及钱的操作我们知道是非常麻烦的,所以,为了解决这个问题,我们需要引入数据库的事务。

直接奔主题,我们该怎么做呢?其实很简单,上一段示例代码:

FondOpenHelper helper = new  FondOpenHelper(getContext());
SqliteDatabase db = helper.getWritableDatabase();
;//1.开启事务
Db.beginTransaction();
Try{
         Db.execSQL(“update fond set account=account-1000 where name = ?”,new Object[]{“zhangsan”});
Db.execSQL(“update fond set account=account-1000 where name = ?”,new Object[]{“lisi”});
 
//2.设置事务开启成功
Db.setTransactionSuccessful();
}catch(Exception e){
         //处理出错
}finally{
         Db.endTransaction();
Db.close();
}

 

 

通过以上三步走,我们发现不管怎么弄,都不会出错了。

相关推荐