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 所以不需要我们手动关闭

参与评论 您还未登录,请先 登录 后发表或查看评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页

打赏作者

卢宥晟

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值