SQLiteDatabase事务

SQLiteDatabase中包含如下两个方法来控制事务。
beginTransaction():开始事务
endTransaction():结束事务
除此之外,SQLiteDatabase还提供了如下方法来判断当前上下文是否处于事务环境中。
inTransaction():如果当前上下文处于事务中,则返回true;否则返回false。

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


示例代码如下:
//开始事务
db.beginTransaction();
try
{
	//执行DML语句
	...
	//调用该方法设置事务成功;否则endTransaction()方法将会回滚事务
	db.setTransactionSuccessful();
}
finally
{
	//由事务的标志决定是提交事务还是回滚事务
	db.endTransaction();
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章