Java OrmLite:Dao.callBatchTasks()和TransactionManager.callInTransaction()之间的区别
这些方法的区别是什么?我已经阅读了文档,但我不明白Java OrmLite:Dao.callBatchTasks()和TransactionManager.callInTransaction()之间的区别,java,android,transactions,ormlite,Java,Android,Transactions,Ormlite,这些方法的区别是什么?我已经阅读了文档,但我不明白callBatchTasksmethod做什么。文件说: 这将关闭数据库所称的“自动提交”模式,运行 调用able,然后重新启用“自动提交” 这不是交易吗 谢谢 Dao.callBatchTasks()和TransactionManager.callInTransaction()之间的区别 差异取决于您使用的数据库。在安卓系统下,没有区别。callBatchTasks(…)的javadocs说明: 调用将执行许多批处理任务的Call-able。当
callBatchTasks
method做什么。文件说:
这将关闭数据库所称的“自动提交”模式,运行
调用able,然后重新启用“自动提交”
这不是交易吗
谢谢
Dao.callBatchTasks()和TransactionManager.callInTransaction()之间的区别
差异取决于您使用的数据库。在安卓系统下,没有区别。callBatchTasks(…)
的javadocs说明:
调用将执行许多批处理任务的Call-able。当您希望同时运行多个数据库操作时(可能是从文件加载数据),这是为了提高性能。这将关闭数据库所称的“自动提交”模式,运行可调用,然后重新启用“自动提交”。如果不支持自动提交,则将使用事务
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);
}
...
private CT doCallBatchTasks(数据库连接、布尔保存、,
Callable Callable)抛出SQLException{
if(databaseType.isBatchUseTransation()){
返回TransactionManager.callInTransaction(连接、已保存、数据库类型、,
可调用);
}
...
因此在内部,在Android下使用时,dao.callBatchTasks(…)
是通过调用TransactionManager.callInTransaction(…)