文档章节

Android数据存储SQLite的事务操作

今日竹石
 今日竹石
发布于 2014/04/17 10:11
字数 187
阅读 39
收藏 1

          使用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);

  }

 }

}



© 著作权归作者所有

共有 人打赏支持
今日竹石
粉丝 41
博文 227
码字总数 181312
作品 0
朝阳
程序员
私信 提问
Android 开发中使用 SQLite 数据库

SQLite 介绍 SQLite 一个非常流行的嵌入式数据库,它支持 SQL 语言,并且只利用很少的内存就有很好的性能。此外它还是开源的,任何人都可以使用它。许多开源项目((Mozilla, PHP, Python)都...

红薯
2010/08/22
67.2K
32
Android数据的四种存储方式之一——总览

Android数据的四种存储方式SharedPreferences、SQLite、Content Provider和File (一) —— 总览 作为一个完成的应用程序,数据存储操作是必不可少的。因此,Android系统一共提供了四种数据...

Airship
2015/03/25
0
0
Android数据的四种存储方式之三——SharedPreferences

Android数据的四种存储方式SharedPreferences、SQLite、Content Provider和File (三) —— SharePreferences 除了SQLite数据库外,SharedPreferences也是一种轻型的数据存储方式,它的本质...

Airship
2015/03/25
0
0
Android:SharedPreferences解析和实现记住用户名

SharedPreferences SharedPreferences是Android平台上一个轻量级的存储类,主要是保存一些常用的配置比如窗口状态,它提供了Android平台常规的Long长整形、Int整形、String字符串型的保存。S...

岑浩源
2012/11/28
0
0
Android开发_Android数据的四种存储方式

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zhangty0223/article/details/10701597 Android系统一共提供了四种数据存储方式。分别是:SharePreference、S...

张腾元_Ternence
2013/08/31
0
0

没有更多内容

加载失败,请刷新页面

加载更多

聊聊flink TableEnvironment的scan操作

序 本文主要研究一下flink TableEnvironment的scan操作 实例 //Scanning a directly registered tableval tab: Table = tableEnv.scan("tableName")//Scanning a table from a registered......

go4it
11分钟前
0
0
JS检测移动端横竖屏的代码

移动端的设备提供了一个事件:orientationChange事件 这个事件是苹果公司为safari中添加的。以便开发人员能够确定用户何时将设备由横向查看切换为纵向查看模式。 在设备旋转的时候,会触发这...

不负好时光
12分钟前
0
0
ArrayList 优化

优化是 基于数据的大小 当数据量过大 (内存能抗住) 性能达到瓶颈才需要针对性的做优化 contain 优化 可以转换为set add 大批量操作 先预估数据量 调用 `ensureCapacity(int minCapacity)` ...

NotFound403
13分钟前
0
0
Lifecycle Aware Data Loading with Architecture Components

In my previous blog post, I talked about how you can use Loaders to load data in a way that automatically handles configuration changes. With the introduction of Architecture Co......

SuShine
14分钟前
0
0
性能测试汇总

服务器带宽测试 iperf测试带宽 wget -c https://codeload.github.com/esnet/iperf/tar.gz/3.1.6 tar zxvf 3.1.6cd iperf*yum install gcc./configure --prefix=/usr/local/iperf#指定......

以谁为师
18分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部