session详解

如何获得session对象?

1)openSession

2)getCurrentSession

如果使用getCurrentSession需要在hibernate.cfg.xml文件中进行配置

如果是本地事务(jdbc事务):

thread

如果是全局事务(jta事务):
jta

全局事务:资源管理器管理和协调的事务,可以跨越多个数据库和进程。资源管理器一般使用 XA 二阶段提交协议与“企业信息系统”(EIS) 或数据库进行交互。
本地事务:在单个 EIS 或数据库的本地并且限制在单个进程内的事务。本地事务不涉及多个数据来源。

(1)getCurrentSession在事务提交或者回滚之后会自动关闭,而openSesssion需要你手动关闭。
如果使用openSession而没有手动关闭,多次之后会导致连接池溢出!
(2)openSession每次创建新的session对象,
getCurrentSession使用现有的session对象(现有session没commit之前)

你可能感兴趣的:(session详解)