如果在交易期间发生异常会怎样?将调用db.endTransaction()
,但是会执行来自事务的任何查询吗?或者所有人都会被取消?
try {
db.beginTransaction();
db.setTransactionSuccessful();
} catch (SQLException e) {
e.printStackTrace();
} finally {
db.endTransaction();
}
答案 0 :(得分:0)
transactions的重点是确保
SQLite中单个事务中的所有更改要么完全发生,要么根本不发生,即使将更改写入磁盘的行为也会中断
- 程序崩溃,
- 操作系统崩溃,或
- 电源故障。
Android beginTransaction()
documentation说:
当...交易结束时,该交易中完成的所有工作......将被提交或回滚。如果任何事务结束而没有标记为干净(通过调用setTransactionSuccessful),则将回滚更改。否则他们将被承诺。