Héc*_*tor 4 java android transactions ormlite
这些方法有什么区别?我已经引用了文档,但我不明白用什么callBatchTasks方法做.文件说:
这将关闭数据库调用"自动提交"模式,运行可调用,然后重新启用"自动提交".
这不是交易吗?
谢谢.
Dao.callBatchTasks()和之间的区别TransactionManager.callInTransaction()
差异取决于您使用的数据库.在Android下,没有区别.javadocs callBatchTasks(...)说:
调用将执行许多批处理任务的可调用程序.当您想要一次运行多个数据库操作时,这是为了提高性能 - 可能是从文件加载数据.这将关闭数据库调用"自动提交"模式,运行可调用,然后重新启用"自动提交".如果不支持自动提交,则将使用事务.
Android的SQLite是其中一个数据库.在内部ORMLite代码中,您会看到:
private <CT> CT doCallBatchTasks(DatabaseConnection connection, boolean saved,
Callable<CT> callable) throws SQLException {
if (databaseType.isBatchUseTransaction()) {
return TransactionManager.callInTransaction(connection, saved, databaseType,
callable);
}
...
Run Code Online (Sandbox Code Playgroud)
所以在内部,当在Android下使用时,dao.callBatchTasks(...)是通过调用TransactionManager.callInTransaction(...).