我的问题很简单。像这样提交事务后, session 是否可以重用?
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();
}
还是在提交后关闭 session 并打开一个新 session 更好?
最佳答案
我也是刚刚开始使用 MyBatis,并且有一个关于 session 管理的类似问题。以下是我到目前为止学到的内容:
- session 应在完成交易所需的时间内保持打开状态,然后关闭。
- MyBatis 提供 session 级别的“本地”缓存,这可能对您的应用程序的性能有益。当然,这取决于您的应用程序的设计,但通常您保持 session Activity 的时间越长,您的缓存就越好。 (MyBatis 处理提交和回滚时的缓存刷新。)
对于您的简单示例,可以为这两个事务保持 session 打开。在整个 DAO 层有效地使用 MyBatis session 意味着在这两个准则之间找到平衡。
花时间阅读有关 session 管理和缓存的官方文档:https://mybatis.github.io/mybatis-3/java-api.html#sqlSessions
关于java - Mybatis。提交后可以重用 session 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32661750/