Android开发中的数据库事务用法分析
本文实例讲述了Android开发中的数据库事务用法。分享给大家供大家参考,具体如下:
在android应用程序开发中,在使用到数据库的时候,事务处理是非常重要的。
首先Android数据库操作(特别是写操作)是非常慢的,将所有操作打包成一个事务能大大提高处理速度。
其次是保证数据的一致性,让一个事务中的所有操作都成功执行,或者失败,或者所有操作回滚。
如果您喜欢使用其他平台(如PHP + MySQL),代码通常在一个功能强大的服务器上运行,一般不会被意外中止,但在android平台上,您将会因为一次又一次的意外中止感到惊呀。android系统会杀死apps/threads/activities等中断数据库的使用,电池电量会耗尽或被移除等。所以,使用数据库事物至关重要。
实现android数据库事务非常简单,只需要使用SQLiteDatabase类的三个方法即可。
beginTransaction();
setTransactionSuccessful();
endTransaction();
当调用endTransaction()时,所有从beginTransaction()开始的操作都会被提交。
一个简单的数据库事务操作如下所示:
mDatabase.beginTransaction(); try{ //在这里执行多个数据库操作 //执行过程中可能会抛出异常 mDatabase.setTransactionSuccessful(); //在setTransactionSuccessful和endTransaction之间不进行任何数据库操作 }catch(Exception e){ //当数据库操作出现错误时,需要捕获异常,结束事务 mDatabase.endTransaction(); throwe; } //当所有操作执行完成后结束一个事务 mDatabase.endTransaction(); }
更多关于Android相关内容感兴趣的读者可查看本站专题:《Android数据库操作技巧总结》、《Android编程之activity操作技巧总结》、《Android文件操作技巧汇总》、《Android编程开发之SD卡操作方法汇总》、《Android开发入门与进阶教程》、《Android资源操作技巧汇总》、《Android视图View技巧总结》及《Android控件用法总结》
希望本文所述对大家Android程序设计有所帮助。
相关推荐
-
Android中操作SQLite数据库快速入门教程
SQLite是Android平台软件开发中会经常用到的数据库产品,作为一款轻型数据库,SQLite的设计目标就是是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够.下面我们一起来看看针对Android平台的SQlite 3的使用. 以下概念都是在Android平台的SQlite限制下的理解: 数据库基础概念 1.SQlite 通过文件来保存数据库,一个文件就是一个数据库. 2.数据库里又包含数个表格: 3.每个表格里面包含了多个记录
-
深入Android SQLite 事务处理详解
应用程序初始化时需要批量的向sqlite中插入大量数据,单独的使用for+Insert方法导致应用响应缓慢,因为 sqlite插入数据的时候默认一条语句就是一个事务,有多少条数据就有多少次磁盘操作.我的应用初始5000条记录也就是要5000次读写磁盘操作. 而且不能保证所有数据都能同时插入.(有可能部分插入成功,另外一部分失败,后续还得删除.太麻烦) 解决方法: 添加事务处理,把5000条插入作为一个事务 我们使用SQLite的事务进行控制: 复制代码 代码如下: db.beginTransac
-
Android数据库中事务操作方法之银行转账示例
本文实例讲述了Android数据库中事务操作方法之银行转账功能.分享给大家供大家参考,具体如下: 主java package com.itheima.transtation; import com.itheima.transtation.db.BankOpenHelper; import android.os.Bundle; import android.app.Activity; import android.database.sqlite.SQLiteDatabase; import and
-
Android SQLite数据库增删改查操作的使用详解
一.使用嵌入式关系型SQLite数据库存储数据 在Android平台上,集成了一个嵌入式关系型数据库--SQLite,SQLite3支持NULL.INTEGER.REAL(浮点数字). TEXT(字符串文本)和BLOB(二进制对象)数据类型,虽然它支持的类型只有五种,但实际上sqlite3也接受varchar(n). char(n).decimal(p,s) 等数据类型,只不过在运算或保存时会转成对应的五种数据类型. SQLite最大的特点是你可以把各种类型的数据保存到任何字段中,而不用关心字段
-
Android SQLite事务处理结合Listview列表显示功能示例
本文实例讲述了Android SQLite事务处理结合Listview列表显示功能.分享给大家供大家参考,具体如下: 前面的文章里介绍过事务的特点如原子性,隔离性,一致性,持久性.下面就结合Android的sqlite来说下,这次的文章里会把listview也结合起来用.实际上android里的事务和我们数据库里的是一样的.也是开启事务,操作,提交事务.如果出现问题就回滚. public void Transaction(){ SQLiteDatabase database=db.getRead
-
Android操作SQLite数据库(增、删、改、查、分页等)及ListView显示数据的方法详解
本文实例讲述了Android操作SQLite数据库(增.删.改.查.分页等)及ListView显示数据的方法.分享给大家供大家参考,具体如下: 由于刚接触android开发,故此想把学到的基础知识记录一下,以备查询,故此写的比较啰嗦: 步骤如下: 一.介绍: 此文主要是介绍怎么使用android自带的数据库SQLite,以及把后台的数据用ListView控件显示 二.新建一个android工程--DBSQLiteOperate 工程目录: 三.清单列表AndroidManifest.xml的配置
-
Android实现将已发送的短信写入短信数据库的方法
短信是手机常见的功能,本文就以实例形式讲述了Android实现将已发送的短信写入短信数据库的方法.分享给大家供大家参考之用.具体如下: 一般来说,把短信发送出去以后,需要把已发送的短信写入短信数据库.短信数据库有多个Uri,其中已发送的Uri是content://sms/sent. 具体功能代码如下: // 把短信写入数据库 public void writeMsg(){ try{ ContentValues values = new ContentValues(); // 发送时间 value
-
Android 用SQLite实现事务的方法
复制代码 代码如下: public void payment() { SQLiteDatabase db = dbOpenHelper.getReadableDatabase(); db.beginTransaction();//开始事务 try { db.execSQL("update person set amount=amount-10 where personid=2"); db.execSQL("update person set amount=amo
-
Android使用SQLite数据库的简单实例
先画个图,了解下Android下数据库操作的简单流程: 1.首先,写一个自己的数据库操作帮助类,这个类继承自Android自带的SQLiteOpenHelper. 2.在自己的DAO层借助自己的Helper写数据库操作的一些方法 3.Activity调用DAO层的数据库操作方法进行操作 下面例子是: 1.Helper 复制代码 代码如下: package cn.learn.db.util; import android.content.Context;import android.databas
-
android实现raw文件夹导入数据库代码
有这样一道面试题: 如何将SQLite数据库(dictionary.db文件)与apk文件一起发布? 答: 把这个文件放在/res/raw目录下即可.res\raw目录中的文件不会被压缩,这样可以直接提取该目录中的文件,会生成资源id. 那么如何把raw文件下面的数据库导入到安装的程序中的database目录下呢? 复制代码 代码如下: public void imporDatabase() { //存放数据库的目录 String dirPath="/data/data/com.
-
android创建数据库(SQLite)保存图片示例
复制代码 代码如下: //1.创建数据库public class DBService extends SQLiteOpenHelper { private final static int VERSION = 1;private final static String DATABASE_NAME = "uniteqlauncher.db"; public DBService(Context context) { this(context, DATABASE_NAME, null,
-
Android中的SQL查询语句LIKE绑定参数问题解决办法(sqlite数据库)
由于考虑到数据库的安全性,不被轻易SQL注入,执行查询语句时,一般不使用直接拼接的语句,而是使用参数传递的方法.然后在使用参数传递的方法中时,发现当使用like方式查询数据时,很容易出现一个问题. 错误案例: 复制代码 代码如下: String myname = "abc";String sql = "select * from mytable where name like '?%'";Cursor cursor = db.rawQuery(sql, new St
随机推荐
- 关于firefox的ElementTraversal 接口 使用说明
- Spring Boot 开发私有即时通信系统(WebSocket)
- 浅谈java里的EL表达式在JSP中不能解析的问题
- 值得收藏的iOS开发常用代码块
- python Django批量导入不重复数据
- Bootstrap选项卡与Masonry插件的完美结合
- ASP.NET数据绑定之Repeater控件
- thinkPHP5.0框架引入Traits功能实例分析
- 简单介绍Python中利用生成器实现的并发编程
- PHP编码转换
- JQuery获取各种宽度、高度(format函数)实例
- 运行asp.net程序 报错:磁盘空间不足
- MySQL与存储过程的相关资料
- js实现格式化金额,字符,时间的方法
- Jquery 最近浏览过的商品的功能实现代码
- android 权限大全 分享
- C#数字图像处理之图像二值化(彩色变黑白)的方法
- jQuery设计思想
- 基于界面适配华为手机的虚拟按键的解决方法
- 微信小程序实现图片压缩功能