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事务锁状态以及死锁问题

    Sqlite事务锁 Sqlite事务中锁的状态 1 UNLOCKED: 表示数据库并未开启任何读写, 使用BEGI...

  • Android SQLite3

    Android SQLite3Android内置了SQLite数据库。 ACID,指数据库事务正确执行的4个要素。...

  • SQLite 事务(Transaction)

    SQLite 事务(Transaction) 事务(Transaction)是一个对数据库执行工作单元。事务(Tr...

  • iOS面试-数据库比较:SQLite vs. Core Data

    SQLite SQLite是使用最多的数据库引擎,并且是开源的。它实现了无配置,无服务要求的事务数据库引擎。SQL...

  • SQLite

    SQLite是一款轻量级,遵守ACID事务原则的关系型数据库。SQLite可以直接嵌入到代码中,无需像MySQL、...

  • SQLite数据库--事务

    事务是并发控制的基本单元 数据库事务具有ACID特性: A:Atomic原子性数据库事务是不可分割的工作单位,事务...

  • python连接sqlite3数据库

    关于sqlite SQLite是一个进程库,实现了一个自包含的, 无服务器, 零配置, 事务性的SQL数据库引擎。...

  • SQLite数据库的一些基本操作

    什么是SQLite SQLite 是一个小型的、无数据类型的、开源的,可嵌入的关系型数据库,它支持事务操作。 1....

  • SQLite3加密原理

    SQLite是一个进程库,实现了一个 自包含的, 无服务器, 零配置, 事务性 的SQL数据库引擎。SQLite是...

  • sqlite3使用

    SQLite 是一个软件库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。SQLite 是...

网友评论

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

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