SQLite 事务

时间:2022-06-29 12:58:03

SQLite数据库是支持事务的,事务的特性可以保证让一系列的操作要么全部完成要么一个都不会完成。

一、调用SQLDatabase的beginTransaction()开起一个事务,当事务处理完成,调用setTransactionSuccessful()方法表示事务已经执行成功,最后调用endTransection()来结束事务。

二、Android 中标准的事务做法是在一个异常捕获代码块中执行数据库的操作,当所有的操作完成之后调用setTransactionSuccecessful()表示事务成功,最后在finall中调用endTransaction()中结束事务

三、示例代码  

try {
db.beginTransaction();
db.delete("book", null, null);
if (true) {
throw new NullPointerException();
}
ContentValues value = new ContentValues();
value.put("name", "Game of ContentValue");
value.put("author", "Xiao maimai");
value.put("pages", 499);
value.put("price", 99.9);
db.insert("book", null, value);
value.clear();
db.setTransactionSuccessful();
}catch (Exception e){
e.printStackTrace();
}finally {
db.endTransaction();
}