Hibernate学习笔记之Session管理
来源:互联网 发布:python 克隆对象 函数 编辑:程序博客网 时间:2024/04/30 07:02
Session之于Hibernate,有如Connection之于JDBC,如果有效的管理Session,从而避免不必要的性能开支。
由于Session是非线程安全的,因此在对Session进行重用的时候应该杜绝多线程共享一个Session。因此对Session的管理应该遵循“在线程内共享”的原则。
通过ThreadLocal实现Session管理是比较常用的一种方式,ThreadLocal可以确保获得与当前线程绑定的Session实例,具体代码如下所示:
private static Configuration conf=new Configuration().configure();private static SessionFactory sessionFactory=conf.buildSessionFactory();public static final ThreadLocal<Session> threadLocal=new ThreadLocal<Session>();public static SessionFactory getSessionFactory(){return sessionFactory;}public static Session getCurrentSession(){Session session=threadLocal.get();if(session==null){session=sessionFactory.openSession();threadLocal.set(session);}return session;}public static void closeSession(){Session session=threadLocal.get();threadLocal.set(null);if(session!=null){session.close();}}
0 0
- Hibernate学习笔记之Session管理
- Hibernate学习笔记 之 configuration、sessionFactory、session
- Hibernate学习笔记(九)【高级篇】并发、Session管理
- Hibernate学习笔记(九)【高级篇】并发、Session管理
- Hibernate学习笔记----Session管理和批量操作
- hibernate学习之 Session
- Hibernate学习笔记之session缓存(一级缓存)
- hibernate学习笔记(一)之Junit 与 Session 一级缓存
- Hibernate学习笔记----session缓存
- Hibernate Session 方法学习笔记
- Hibernate学习-13-二级缓存,session管理
- Hibernate 开发指南之Session管理
- Hibernate之管理session与批处理
- Hibernate之session的管理方式
- hibernate学习笔记:hibernate中的Cache管理
- Hibernate学习笔记:session操作对象
- Hibernate 学习笔记1 session flush
- Hibernate学习笔记:session操作对象
- 构建企业级的自动化测试平台
- JS 实现Cookie
- rails小重构:将图片加入产品Model之二
- codeforces#291(div.2)D题
- ios block用代码块反向传值最简单
- Hibernate学习笔记之Session管理
- WCF理解
- 打开用户态core
- 关于IE输入框无法使用
- KMP算法 记录
- Win7快捷键
- 3 获取质数 Handle Bundle Looper
- SQLite数据库查询优化方案
- SQLLite操作百万级数据之优化篇