据我所知,调用SqliteOpendHelper.getWritableDatabase()总是返回相同的SQLiteDatabase实例。因此,与其相关的事务是否也不受影响?
假设有一个单线程环境,我使用了一个单例SQLiteOpenHelper实例。假设我有一个长事务:
SQLiteDatabase.beginTransaction()打过一次电话。SqliteOpendHelper.getWritableDatabase()。SqliteOpendHelper.getWritableDatabase()。SQLiteDatabase.endTransaction()打过一次电话。是否在单个事务中执行了所有的DAO操作?,如果以某种方式对getWritableDatabase()事务进行多次调用,则无法从来源中找出。
发布于 2014-11-04 08:30:19
是的;getWritableDatabase()总是返回相同的连接对象(除非它以前关闭了),而单个数据库连接总是使用单个事务,因此通过它完成的所有操作都在同一个事务中。
请注意,SQLiteDatabase支持事务调用的嵌套,因此低级CRUD操作可以安全地执行自己的事务,而不管它们在哪里调用。
https://stackoverflow.com/questions/26729595
复制相似问题