我目前正在使用 MyBatis,我想知道這兩個家伙有什么不同。openSession(false);和openSession(ExecutorType.BATCH,false);好像到數據庫的結果是一樣的,但是性能呢?這兩種類型的 SqlSession 不同嗎?
1 回答

白衣非少年
TA貢獻1155條經驗 獲得超0個贊
第一次調用使用在您的SqlSessionFactory
. 如果BATCH
配置了 executor,那么這兩個調用是完全相同的,您將獲得批處理 executor 并且后續行為是相同的。
在沒有執行器類型中使用顯式配置的SIMPLE
執行器。
這兩種執行器類型的區別可以在執行多個修改語句的場景中看到。
SIMPLE
執行器在調用相應的映射器方法時立即執行查詢。BATCH
執行器使用JBDC
批處理 API。該 API 不會立即發送查詢以供執行,而是收集它們,然后對數據庫進行一次網絡調用。在某些情況下,這可能會帶來性能提升。
添加回答
舉報
0/150
提交
取消