本文实例讲述了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程序设计有所帮助。
本文向大家介绍PostgreSQL数据库事务实现方法分析,包括了PostgreSQL数据库事务实现方法分析的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了PostgreSQL数据库事务实现方法。分享给大家供大家参考,具体如下: 事务简介 事务管理器:有限状态机 日志管理器 CLOG:事务的执行结果 XLOG:undo/redo日志 锁管理器:实现并发控制,读阶段采用MVCC,写阶段采用锁控
一、Attach数据库: ATTACH DATABASE语句添加另外一个数据库文件到当前的连接中,如果文件名为":memory:",我们可以将其视为内存数据库,内存数据库无法持久化到磁盘文件上。如果操作Attached数据库中的表,则需要在表名前加数据库名,如dbname.table_name。最后需要说明的是,如果一个事务包含多个Attached数据库操作,那么该事务仍然是原子的。见如下示例:
事件的分发机制由三个重要方法来共同完成:dispatchTouchEvent、onInterceptTouchEvent和onTouchEvent 事件分发:public boolean dispatchTouchEvent(MotionEvent ev):用来进行事件的分发。如果事件能够传递给当前View,那么此方法一定会被调用,返回结果受当前View的onTouchEvent和下级View的D
本文向大家介绍Android开发中ImageView的scaletype属性用法分析,包括了Android开发中ImageView的scaletype属性用法分析的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Android开发中ImageView的scaletype属性用法。分享给大家供大家参考,具体如下: ImageView的属性android:scaleType,即 ImageVie
本文向大家介绍SqlServer 复制中将大事务分成小事务分发的方法,包括了SqlServer 复制中将大事务分成小事务分发的方法的使用技巧和注意事项,需要的朋友参考一下 在sql server 复制中,当在发布数据库执行1个大事务时,如一次性操作 十万或百万以上的数据。当操作数据在发布数据库执行完成后 ,日志读取器代理将扫描事务日志,一次性传递到分发数据库中。若上个事务未传递完成,连续执行多个事
假设我们有两个服务,A和B。服务A有一个函数执行以下操作: 验证数据 现在,让我们假设以下步骤之一,步骤3或4失败。由于服务B对数据库进行了更改,这些更改仍然存在。 在这种情况下,有没有办法回滚数据库?我曾考虑过数据库事务,但在nest js中找不到任何方法来实现这一点,尽管TypeOrm支持它,但nest看起来并不自然。如果不是的话,我现在被服务B所做的更改“卡住”了,但是如果没有服务B所做的更