Android 中读取未提交的事务

Cod*_*ley 5 java sql database sqlite android

我正在进行大量数据库操作,这会向我的数据库添加大约 10,000 条记录。由于这可能需要很长时间,因此最好使用事务。

db.startTransaction();
....
do write operations.
....
db.setTransactionSuccessful();
db.endTransaction();
Run Code Online (Sandbox Code Playgroud)

现在,我在事务内进行了一些读取操作,并且由于直到 endTransaction 才提交插入,因此不会获取这些记录。我听说过一种称为事务隔离级别的东西,它使我们能够读取脏(未提交)记录。知道如何做到这一点吗?

Cod*_*ley 3

我发现默认情况下您将能够读取尚未提交的记录。尽管如果您使用的是,这会失败SQliteOpenHelper。这是因为SQliteOpenHelper提供了 2 个单独的处理(读和写),并且未提交的写入将无法从另一个句柄读取。因此,如果您想读取未提交的记录,请使用SQLiteDatabaseclass.