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

来源:互联网 发布:施工网络进度计划 编辑:程序博客网 时间:2024/05/16 12:58

为什么要专注于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

0 0
原创粉丝点击