使用SQLiteDatabase的beginTransaction()方法可以开启一个事务,程序执行到endTransaction() 方法时会检查事务的标志是否为成功,如果为成功则提交事务,否则回滚事务。当应用需要提交事务,必须在程序执行到endTransaction()方法之前使用setTransactionSuccessful() 方法设置事务的标志为成功,如果不调用setTransactionSuccessful() 方法,默认会回滚事务。

使用例子如下:
 1  SQLiteDatabase db = .;
 2 db.beginTransaction();//开始事务
 3 try {
 4     db.execSQL("insert into person(name, age) values(?,?)", new Object[]{"gaolei", 22});
 5     db.execSQL("update person set name=? where personid=?", new Object[]{"zhangsan", 1});
 6     db.setTransactionSuccessful();//调用此方法会在执行到endTransaction() 时提交当前事务,如果不调用此方法会回滚事务
 7 } finally {
 8     db.endTransaction();//由事务的标志决定是提交事务,还是回滚事务
 9 } 
10 db.close();

上面两条SQL语句在同一个事务中执行。

转载于:https://www.cnblogs.com/xiaofengfeng/p/3512094.html

在SQLite中使用事务相关推荐

  1. Android学习笔记----18_在SQLite中使用事务

    18_在SQLite中使用事务 1.转账的事物实现:   update person set amount=amount-10 where personid=1;   update person se ...

  2. SqLite中的事务

    开启事务 转帐逻辑 标记 关闭事务 1. Android中开启事务的方法正确的是( )A.db.startTransaction() B.db.beginTransaction() C.db.endT ...

  3. 实例教程七:在SQLite中使用事务

    系统文件管理器 http://www.eoeandroid.com/thread-128567-1-1.html android 实现区域截图 http://www.eoeandroid.com/th ...

  4. SQLite中特殊的INSERT语句

    SQLite中特殊的INSERT语句 在SQLite中,INSERT是基本语句,用来向表中插入数据.但是当表中存在字段存在唯一.非空.检查.主键等约束时,插入的数据很容易和约束冲突,造成插入操作失败. ...

  5. SQLITE中原子提交的实现

    转自:http://blog.csdn.net/LocalVar/archive/2008/02/13/3620555.aspx 1.    引言 像SQLITE这样支持事务的数据库的一个重要特性是& ...

  6. SQLite中的高级SQL

    插入记录 使用insert插入记录.insert在表单上工作,使用insert命令可以一次插入一条记录,使用select命令可以一次插入多条记录.insert语句的一般格式为: [sql] view ...

  7. 【数据库】sqlite中的限制:数据库大小、表数、列数、行数、参数个数、连接数等

    目录 一.参考网址 二.详解 1.查看.设置sqlite限制命令.limit 2.SQLite中的限制汇总 1)字符串或BLOB的最大长度 2)最大列数 3)SQL语句的最大长度 4)联接中的最大表数 ...

  8. 【数据库】sqlite中PRAGMA命令说明

    关于sqlite中PRAGMA的说明网上已经有很多了,这里不再复制粘贴,只把内容最全的网址连接记录一下: 官网说明(英文):https://sqlite.org/pragma.html 中文翻译,参见 ...

  9. Redis初学:14(Redis中的事务)

    Redis中的事务 Redis的事务定义 Redis事务是一个单独的隔离操作:事务中的所有命令都会序列化.按顺序地执行.事务在执行的过程中,不会被其他客户端发送来的命令请求所打断. Redis事务的主 ...

最新文章

  1. workerman的基本用法
  2. 如何在eclipse中修改jsp默认编码
  3. java中怎样定义实数_Java Math 类中的新功能,第 1 部分: 实数
  4. put url带参数_避免自己写的 url 被diss!建议看看这篇RESTful API简明教程!
  5. HbuilderX、Hbuilder编辑器如何使用手机调试app
  6. encoder decoder模型_3分钟|聊一聊 Decoder 模块
  7. python 运行pyc_Pyc文件编译和运行
  8. javascript 200列(3)
  9. 对WITH和from(select ...)的一点比较
  10. Setting up NUnit for C# Unit Testing with Visual Studio C# Express 2008
  11. usaco-2.1-frac1-pass
  12. 试分析家用变频空调的计算机控制原理,习 题 五
  13. 漏桶算法和令牌桶算法
  14. 草根学Python(十四) 一步一步了解正则表达式
  15. 在命令行到处MYSQL数据到EXCEL表
  16. java javaw 命令区别_java 和javaw 的区别
  17. 移动前端开发之viewport的深入理解
  18. CHERRY 键盘 alt 组合键失灵或开始菜单键失灵
  19. java课设--简单的学生成绩管理系统(可视化界面,连接MYsql数据库)
  20. 1024(Windows考点整理)

热门文章

  1. 从尾到头打印单向链表
  2. RedisClient的安装及基本使用
  3. 深度学习的batch_size
  4. jquery中的DOM操作集锦
  5. git push origin master和git push有什么区别?
  6. 比较有用的sql语句
  7. 零基础学习 Python 之运算符
  8. 9号团队-团队任务4:每日立会(2018-11-26,2018-11-27)
  9. Vue.nextTick()理解
  10. Canvas 波形图