数据库的事务
我们经常在编写程序涉及到两个数据需要同时操作的时候,比如转账,这就有了这样的需求:一个人需要扣掉一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(); }
通过以上三步走,我们发现不管怎么弄,都不会出错了。