码迷,mamicode.com
首页 > Web开发 > 详细

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

时间:2016-05-12 23:01:18      阅读:188      评论:0      收藏:0      [点我收藏+]

标签:

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

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

标签:

原文地址:http://blog.csdn.net/qq_28483283/article/details/51347379

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!