SQLiteDatabase事務

SQLiteDatabase中包含如下兩個方法來控制事務。
beginTransaction():開始事務
endTransaction():結束事務
除此之外,SQLiteDatabase還提供瞭如下方法來判斷當前上下文是否處於事務環境中。
inTransaction():如果當前上下文處於事務中,則返回true;否則返回false。

當程序執行endTransaction()方法時將會結束事務——那到底是提交事務呢,還是回滾事務呢?這取決於SQLiteDatabase是否調用了setTransactionSuccessful()方法來設置事務標誌,如果程序事務執行中調用了該方法設置了事務成功則提交事務;否則程序將會回滾事務。


示例代碼如下:
//開始事務
db.beginTransaction();
try
{
	//執行DML語句
	...
	//調用該方法設置事務成功;否則endTransaction()方法將會回滾事務
	db.setTransactionSuccessful();
}
finally
{
	//由事務的標誌決定是提交事務還是回滾事務
	db.endTransaction();
}


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