首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >getWritableDatabase()是否影响事务

getWritableDatabase()是否影响事务
EN

Stack Overflow用户
提问于 2014-11-04 07:16:33
回答 1查看 292关注 0票数 1

据我所知,调用SqliteOpendHelper.getWritableDatabase()总是返回相同的SQLiteDatabase实例。因此,与其相关的事务是否也不受影响?

假设有一个单线程环境,我使用了一个单例SQLiteOpenHelper实例。假设我有一个长事务:

  • 我给SQLiteDatabase.beginTransaction()打过一次电话。
  • DAO1构造函数调用SqliteOpendHelper.getWritableDatabase()
  • DAO1方法对其执行CRUD操作。
  • DAO2构造函数调用SqliteOpendHelper.getWritableDatabase()
  • DAO2方法对其执行CRUD操作。
  • ...on和on
  • 我给SQLiteDatabase.endTransaction()打过一次电话。

是否在单个事务中执行了所有的DAO操作?,如果以某种方式对getWritableDatabase()事务进行多次调用,则无法从来源中找出。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-11-04 08:30:19

是的;getWritableDatabase()总是返回相同的连接对象(除非它以前关闭了),而单个数据库连接总是使用单个事务,因此通过它完成的所有操作都在同一个事务中。

请注意,SQLiteDatabase支持事务调用的嵌套,因此低级CRUD操作可以安全地执行自己的事务,而不管它们在哪里调用。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26729595

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档