hibernate的sessionfactory

SessionFactory就相当于之前的数据连接池 他存放了大量的session

  • SessionFactory 相当于java web连接池,用于管理所有session
  • 获得SessionFactory 方式:config.buildSessionFactory();
  • sessionFactory 还用于缓存配置信息 (数据库配置信息、映射文件,预定义HQL语句 等)
  • SessionFactory线程安全多个线程同时访问时,不会出现线程并发访问问题

Session 会话

session会话的获取

  • sessionFactory提供了两个方法来获取session
  1. factory.openSession() 获取一个全新的session        需要手动关闭
  2. factory.getCurrentSession() 获取一个与当前线程绑定的session    不需要手动关闭

 第二种方法需要注意:

a.要使用这个方法必须在hibernate.cfg.xml中配置

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

b.hibernate支持,将创建的session绑定到本地线程中,底层使用ThreadLocal,在程序之间共享session。

c.如果提交或者回滚事务,底层将自动关闭session 所以不需要我们手动关闭

猜你喜欢

转载自blog.csdn.net/weixin_41298572/article/details/88142095
今日推荐