我的问题很简单.在像这样提交事务后,是否可以重用会话?
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