hibernate中session的产生方式(openSession、getCurrentSession)

1.openSession是直接创建一个session,getCurrentSession是获取当前线程池中的session。
2.session是存放在ThreadLocal中,不会有安全性问题,因为每个线程只能访问到当前线程对应的session。
3.getCurrentSession的效率更高。
4.使用getCurrentSession需要在hibernate.cfg.xml中添加属性
    <property name="current_session_context_class">thread</property>
5.openSession在commit后还需要close,getCurrentSession在commit后自动close,再close会报错。
6.getCurrentSession时所有的增删改查都需要起事务。

你可能感兴趣的:(hibernate中session的产生方式(openSession、getCurrentSession))