【学习笔记】Hibernate获得Session的两个方法

大家都知道,使用Hibernate对数据进行操作最重要的是获得一个Session。

 

首先获得一个SessionFactory,通过.config().buildSessionFactory(),获得一个SessionFactory

 

进而取得Session的方法在Hibernate里有两种:

 

1:Session session = sessionFactory.openSession();

    该种方法是创建一个新的session,不论当前的环境中是否已经创建,都会创建;

    且当session提交成功后,需要手动关闭这个session;

 

2:Session session = sessionFactory.getCurrentSession();

    该方法是获取当前环境中的session,若环境中已经存在session,则取出当前的;若无session则创建一个新的,

    只要当前的session提交后,该session会自动关闭,其后再使用getCurrentSession()方法,则是创建一个新的session;

 

 

      使用以上两种方式还需要注意的是事务控制,如果使用第一种方法,openSession()也许会导致数据的不一致,

      例如在用户管理功能模块中,我们对用户的各种操作都需要做日志记录,此时要两张数据表同时提交成功,否则都不进行数据的写入;所以我们要使用第二种方式来取得session。

 

特别强调:这两种取得Session的方法不能混用。原因很简单,在Hibernate中,Session是一个接口。两个获取session的方法并非是同一个实现,故不可混用!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值