Hibernate的Session详解

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Hibernate的Session详解相关的知识,希望对你有一定的参考价值。

Hibernate操纵数据库都是通过Session对象来实现,Session对象表示数据库的连接
 
获得Session的方法有两种:
1)openSession
2)getCurrentSession
 
使用第二种需要在hibernate.cfg.xml文件中进行配置:
如果是本地事务(jdbc事务)
<property name="hibernate.current_session_context_class">thread</property>
如果是全局事务(jta事务)
<property name="hibernate.current_session_context_class">jta</property>
 
openSession和getCurrentSession的区别:
1.getCurrentSession在事务提交或者回滚之后会自动关闭,而openSession需要手动关闭。如果使用openSession而没有手动关闭,多次之后回导致连接池的溢出。
 
2.openSession每次创建新的session对象,getCurrentSession使用现有的session对象。

以上是关于Hibernate的Session详解的主要内容,如果未能解决你的问题,请参考以下文章

Hibernate的session详解

hibernate_03_session详解

hibernate课程 初探单表映射2-6 session详解(下)

Hibernate详解

Hibernate中一级缓存和二级缓存使用详解

session详解