Hibernate Session

来源:互联网 发布:淘宝详情页怎么切图 编辑:程序博客网 时间:2024/06/07 01:29

Configuration 加载配置文件  property 、加载hbm映射配置

SessionFactory线程安全,保存了当前的数据库配置信息和所有映射关系以及预定义的SQL语句。在SessionFactory中内置了连接池。其有两个常用方法:

openSession()  --从连接池中随机获取一个连接

getCurrentSession()  --SessionThreadLocal绑定,确保在一次请求中,

只有一个Session对象。


getCurrentSession()openSession()的区别?

采用getCurrentSession()创建的session会绑定到当前线程中,而采用openSession()创建的session则不会

采用getCurrentSession()创建的sessioncommitrollback时会自动关闭,而采用openSession()创建的session必须手动关闭

使用getCurrentSession()需要在hibernate.cfg.xml文件中加入如下配置:

如果使用的是本地事务(jdbc事务)

<property name="hibernate.current_session_context_class">thread</property>

如果使用的是全局事务(jta事务)

<property name="hibernate.current_session_context_class">jta</property>

原创粉丝点击