SQLite数据库--事务

作者: 大话程序 | 来源:发表于2016-05-13 17:44 被阅读722次

    事务是并发控制的基本单元

    数据库事务具有ACID特性:

    • A:Atomic原子性
      数据库事务是不可分割的工作单位,事务中的全部操作全部执行或者全部不执行

    • C:Consistency一致性
      数据库事务不能破坏数据库的完整性以及业务逻辑上的一致性或者说是事务执行前后总的状态是一致的

    • I:Isolation隔离性
      在并发环境中,当不同的事务同时操作相同的数据时,每个事务都有各自的完整数据空间,事务不会查看到中间状态的数据

    • D:Durability持久性
      事务成功结束,它对数据库所做的更新就必须永久保存下来

    事务执行代码:

    SQLiteDatabase db = dbHelper.getReadableDatabase();  
    db.beginTransaction();  //开启事务                       
    try {                                                
        db.delete("Book", null, null);                   
        ContentValues values = new ContentValues();      
        values.put("name", "sheng");                     
        values.put("author", "xiao");                    
        values.put("pages", 123);                        
        values.put("price", 20.5);                       
        db.insert("Book", null, values);                 
        db.setTransactionSuccessful();  //事务已经执行成功       
    } catch (Exception e) {                              
        e.printStackTrace();                             
    }finally{
        db.endTransaction();  //结束事务                     
    }                                                    
    

    首先调用SQLiteDatabasebeginTransaction()方法来开启一个事务,然后在一个异常捕获的代码块中去执行具体的数据库操作,当所有的操作完成之后,调用setTransactionSuccessful()表示事务已经执行成功了,最后在finally代码块中调用endTransaction()来结束事务

    相关文章

      网友评论

        本文标题:SQLite数据库--事务

        本文链接:https://www.haomeiwen.com/subject/bpcmrttx.html