java – Mybatis.提交后可以重用会话吗?

我的问题很简单.在像这样提交事务后,是否可以重用会话?

try (SqlSession session = sqlSessionFactory.openSession()) {
// following 3 lines pseudocode for "doing some work"
  session.insert(...);
  session.update(...);
  session.delete(...);
  session.commit();

  session.insert();
  session.commit();
}

或者提交后关闭会话并打开新会话会更好吗?

最佳答案 我刚刚开始使用MyBatis,并且有一个关于会话管理的类似问题.这是我到目前为止所学到的:

>只要有必要,会话应保持开放以完成交易,然后关闭.
> MyBatis提供会话级“本地”缓存,可能有助于您的应用程序的性能.当然,这取决于您的应用程序的设计,但通常您保持会话活动的时间越长,缓存越好. (MyBatis处理提交和回滚时的缓存刷新.)

对于您的简单示例,可以保持会话对这两个事务保持打开状态.在整个DAO层有效使用MyBatis会话意味着在这两个指南之间找到平衡点.

花点时间阅读有关会话管理和缓存的官方文档:https://mybatis.github.io/mybatis-3/java-api.html#sqlSessions

点赞