SQLite事务操作

来源:互联网 发布:php大于符号 编辑:程序博客网 时间:2024/06/05 04:24

SQLite引入事物,用来并发sql语句的执行。
事务是针对数据库的一组操作,它可以由一条或多条SQL语句组成,同一个事务的操作具备同步的特点,如果有一条语句无法执行,那么所有语句都不会执行。也就是说,事务中的语句要么都执行,要么都不执行。

以下示例代码中,通过SQLite的事务来模拟银行转账功能。首先要得到一个可写的SQLiteDatabase对象,然后开启事务执行转入转出操作,最后关闭事务:
//helper对象的获取代码略 public void transaction_operations(){        //获取一个可写的SQLiteDatabase对象        SQLiteDatabase db=helper.getWritableDatabase();        //开始数据库的事务        db.beginTransaction();        try {            //执行转出操作            db.execSQL("update person set accunt-1000 where name=?",new Object[]{"丢丢"});            //执行转入操作            db.execSQL("update person set accunt+1000 where name=?",new Object[]{"贝贝"});            //标记数据库事务执行成功            db.setTransactionSuccessful();        }catch (Exception e){            Log.i("事务处理失败!",e.toString());        }finally {            //关闭事务!            //关闭db!            db.endTransaction();            db.close();        }    }