为了账号安全,请及时绑定邮箱和手机立即绑定

MyBatis SqlSession autoCommit

MyBatis SqlSession autoCommit

素胚勾勒不出你 2021-12-22 19:11:18
我目前正在使用 MyBatis,我想知道这两个家伙有什么不同。openSession(false);和openSession(ExecutorType.BATCH,false);好像到数据库的结果是一样的,但是性能呢?这两种类型的 SqlSession 不同吗?
查看完整描述

1 回答

?
白衣非少年

TA贡献1155条经验 获得超0个赞

第一次调用使用在您的SqlSessionFactory. 如果BATCH配置了 executor,那么这两个调用是完全相同的,您将获得批处理 executor 并且后续行为是相同的。

在没有执行器类型中使用显式配置的SIMPLE执行器。

这两种执行器类型的区别可以在执行多个修改语句的场景中看到。

SIMPLE执行器在调用相应的映射器方法时立即执行查询。BATCH执行器使用JBDC批处理 API。该 API 不会立即发送查询以供执行,而是收集它们,然后对数据库进行一次网络调用。在某些情况下,这可能会带来性能提升。


查看完整回答
反对 回复 2021-12-22
  • 1 回答
  • 0 关注
  • 163 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信