博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android数据存储SQLite的事务操作
阅读量:6800 次
发布时间:2019-06-26

本文共 1204 字,大约阅读时间需要 4 分钟。

hot3.png

          使用SQLiteDatabase的beginTransaction()方法可以开启一个事务,程序执行到endTransaction() 方法时会检查事务的标志是否为成功,如果程序执行到endTransaction()之前调用了setTransactionSuccessful() 方法设置事务的标志为成功则提交事务,如果没有调用setTransactionSuccessful() 方法则回滚事务。

        下面是一个例子:

/**

 * 保存连载更新的最大章节数

 *

 * @param bookId

 * @param bookChapterTotalNum

 */

public void saveBookChapterTotalNum(String bookId, int bookChapterTotalNum) {

 synchronized (MyOpenHelper.databaseLock) {

  SQLiteDatabase db = null;

  try {

   UserInfo userInfo = UserManager.INSTANCE.getUserInfo();

   String username = userInfo.getUsername();

   if (username == null || "".equals(username)) {

    username = MyOpenHelper.AdminUser;

   }

   db = MyOpenHelper.getInstance().getWritableDatabase();

   db.beginTransaction();

   try {

    if (isHave(db, bookId, username)) {

     String sql = "UPDATE "

       + tableName

       + " SET bookChapterTotalNum=? WHERE bookId=? and (username=? or username='"

       + MyOpenHelper.AdminUser + "')";

     Object[] bindArgs = { bookChapterTotalNum, bookId,

       username };

     db.execSQL(sql, bindArgs);

    }

    db.setTransactionSuccessful();

   } catch (Exception e) {

    e.printStackTrace();

   } finally {

    db.endTransaction();

   }

  } catch (Exception e) {

   e.printStackTrace();

  } finally {

   closeDB(db);

  }

 }

}

转载于:https://my.oschina.net/u/1244156/blog/223313

你可能感兴趣的文章
EDB PPAS的"坑" 不兼容PostgreSQL一例
查看>>
"proxy_pass" cannot have URI part in location given by regular expression
查看>>
ExtJS5学习之Grid与Grid之间的数据拖拽
查看>>
后退时保存表单状态
查看>>
poj 2528 Mayor's posters(线段树+离散化)
查看>>
动画绘制水波纹
查看>>
安装xenomai的记实
查看>>
梦幻星空动画
查看>>
用Easing函数实现碰撞效果
查看>>
Python简介
查看>>
泛函编程(13)-无穷数据流-Infinite Stream
查看>>
XML与HTML
查看>>
[Java 泥水匠] Java Components 之二:算法篇之项目实践中的位运算符(有你不懂的哦)...
查看>>
Java SecurityManager
查看>>
[LeetCode]*84.Largest Rectangle in Histogram
查看>>
[华为机试练习题]8.汽水瓶
查看>>
taskset - retrieve or set a process's CPU affinity (affect SYSTEMTAP TIME)
查看>>
SpringBoot2 | SpringBoot启动流程源码分析(二)
查看>>
MyBatis 原理浅析——基本原理
查看>>
第七章:SpringCloud Feign对hystrix的支持
查看>>