SQLIte Transaction
Posted CoderAndy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQLIte Transaction相关的知识,希望对你有一定的参考价值。
基本概念
事务(Transaction)是指一个或多个更改数据库的扩展。例如,如果您正在创建一个记录或者更新一个记录或者从表中删除一个记录,那么您正在该表上执行事务。重要的是要控制事务以确保数据的完整性和处理数据库错误。实际上,可以把许多的 SQLite查询联合成一组,把所有这些放在一起作为事务的一部分进行执行。
事物的属性
原子性
确保工作单位内的所有操作都成功完成,否则,事务会在出现故障时终止,之前的操作也会回滚到以前的状态。
一致性
确保数据库在成功提交的事务上正确地改变状态。
隔离性
使事务操作相互独立和透明。
持久性
确保已提交事务的结果或效果在系统发生故障的情况下仍然存在。
事物控制
BEGIN TRANSACTION 开始事物
COMMIT 提交(事物执行成功)
ROLLBACK 回滚(失败)
android开发中的实际应用步骤
db.beginTransaction(); //手动设置开始事务 try{ for(Collection c:colls){ //do some operation... } db.setTransactionSuccessful(); //设置事务处理成功,不设置会自动回滚不提交 /* * 在setTransactionSuccessful和endTransaction之间不进行任何数据库操作 */ }catch(Exception e){ //handle exceptions; }finally{ db.endTransaction(); //处理完成 }
以上是关于SQLIte Transaction的主要内容,如果未能解决你的问题,请参考以下文章
在 SQLite + BEGIN TRANSACTION 中更新更快
Android入门第54天-SQLite中的Transaction
java.lang.NullPointerException: Attempt to invoke virtual method ‘int android.database.sqlite异常(代码片段