有一些连续的动作需要在同一个事务里面处理,如转账等,转账的成功与否需要在同一个事务中处理,如果A的账号余额不够,转账失败,是需要将事务回滚的,而不是提交:
public void payment(){ SQLiteDatabase db = sqliteOpenHelper.getWritableDatabase(); db.beginTransaction(); //开启事务 try { db.execSQL("update person set amount=amount-10 where personid=1"); db.execSQL("update person set amount=amount+10 where personid=2"); db.setTransactionSuccessful(); //设置事务标志位true } catch (Exception e) { // TODO: handle exception } finally{ //结束事务,有两种情况:commit 和 rollback, //事务的提交还是回滚是由事务的标志决定的,如果事务的标志位true,事务就会提交,为false则回滚,默认情况下是false db.endTransaction(); } }