您的位置:首页 > 移动开发 > Android开发

Android数据库使用之事务-Transcation

2015-09-19 20:16 316 查看

一、背景:

前段时间开发一个项目,需要使用Android数据库做本地缓存,当时从服务断获取的数据有几千条,把数据插入到了数据库。

如果不使用事务,需要较长时间才能完成,效率很低,因为每插入一条数据系统会默认commit一次,那就会循环几千次,大大的降低了用户体验。使用事务-Transcation是很有必要的。

二、概述:

事务是数据库操作的的重要组成部分,事务允许将多条数据库操作语句视为一个单元。一个事务需要保证以下两种情况之一才会发生:

1.如果没有错误发生,所有的数据库语句都会被执行并且提交

2.如果在事务的任何一个执行点发生错误,整个事务都需要被回滚(rollback)

三、操作语句:

[code] 1.db.beginTransaction(); //循环之前开启事务
 2.db.setTransactionSuccessful(); //循环结束后调用
 3.db.endTransaction();//最后释放事务


四、具体代码:

下面贴出代码模版:

[code] /**
  * 插入这个数值
  *
  * @param postbe_functionId
  * @param postbe_uniqueId
  */
 public void insertValue(String postbe_functionId, String postbe_uniqueId) {
  db.beginTransaction();
  try {
   sql = "insert into postbe_tab (postbe_functionId,postbe_uniqueId) values ('"
     + postbe_functionId + "','" + postbe_uniqueId + "')";
   db.execSQL(sql);
   db.setTransactionSuccessful(); // 设置事务处理成功,
  } catch (Exception e) {
   e.printStackTrace();
  } finally {
   db.endTransaction(); // 处理完成
  }
 }


五、总结:

使用数据库事务就是为了提高效率,保证多次写操作同时成功,提高了效率。举个例子。我们执行了n次写的操作,如果有一次写的操作失败,那么n次写操作都不会被提交到数据库中。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: