您的位置:首页 > 数据库

SQLiteDatabase事务

2015-08-14 09:13 288 查看
SQLiteDatabase中包含如下两个方法来控制事务。

beginTransaction():开始事务

endTransaction():结束事务

除此之外,SQLiteDatabase还提供了如下方法来判断当前上下文是否处于事务环境中。

inTransaction():如果当前上下文处于事务中,则返回true;否则返回false。
当程序执行endTransaction()方法时将会结束事务——那到底是提交事务呢,还是回滚事务呢?这取决于SQLiteDatabase是否调用了setTransactionSuccessful()方法来设置事务标志,如果程序事务执行中调用了该方法设置了事务成功则提交事务;否则程序将会回滚事务。

示例代码如下:
//开始事务
db.beginTransaction();
try
{
//执行DML语句
...
//调用该方法设置事务成功;否则endTransaction()方法将会回滚事务
db.setTransactionSuccessful();
}
finally
{
//由事务的标志决定是提交事务还是回滚事务
db.endTransaction();
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息