Hibernate入门(四)之hibernate中session的创建方式

为什么要专注于session的创建方式

在有些场景必须关注session的创建,比如说在银行转账操作的时候,两个账户转账必须在同一个session中

这里写图片描述
这里写图片描述
这里写图片描述

如上面所示,账户1钱没了,账户2钱却没有到,原因就在于两者不再同一个事务当中,不能实现事务的回滚。

getCurrentSession

说明:
1、产生方式的说明
1、先检查当前线程中是否有session
2、如果当前线程中有session,则把session提取出来,直接使用
3、如果当前线程中没有session,则采用openSession方法创建session
4、把新创建的session放入到threadlocal中
5、当再次得到session的时候就是从当前线程中获取了

2、用法
1、在hibernate.cfg.xml文件中
这里写图片描述
说明session从当前线程中获取
2、在代码中
这里写图片描述
说明:
1、crud操作必须在事务的条件下运行
2、当事务提交的时候,session自动关闭
3、这种做法相当于把session和事务绑定在一起了

session总结

1、数据库的链接是由session来完成的
2、事务是由session产生的
3、Crud操作是由session完成的
4、一级缓存就是session的缓存,可以存放持久化对象
5、Session可以有两种打开方式 openSession和getCurrentSession

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值