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

如何在片段中访问 SQLite 数据到 ListView

使用片段从数据库 SQLite 获取数据时出错

java.lang.NullPointerException: Attempt to invoke virtual method ‘int android.database.sqlite异常(代码片段

SQLite 片段函数实现不会在 TextView 中将文本格式化为 HTML