fly*_*pen 2 sqlite android android-sqlite
我在Android中使用sqlite事务:
SQLiteDatabase database = sqlite_helper.getWritableDatabase();
database.beginTransaction();
...
database.setTransactionSuccessful();
database.endTransaction();
Run Code Online (Sandbox Code Playgroud)
我的问题是:
1.我应该endTransaction()像这样放在finally代码块中:
try {
database.beginTransaction();
...
database.setTransactionSuccessful();
}
finally {
database.endTransaction();
}
Run Code Online (Sandbox Code Playgroud)
如果在数据库操作期间出现异常,数据库是否会自动回滚而不使用"finally"?
android.database.sqlite.SQLiteMisuseException: library routine called out of sequence:
,编译时
有没有人帮我回答这些问题?非常感谢!
小智 5
1.你应该总是将endTransaction置于finally块中
2. SQLite中的事务是线程安全的,请参阅http://www.sqlite.org/atomiccommit.html文档