首页 > Web开发 > 详细

HibernateUtil

时间:2015-12-02 20:50:03      阅读:306      评论:0      收藏:0      [点我收藏+]

hibernateUtil

hibernate的工具类,里面封装了获取session和关闭session的方法,能够直接使用

HibernateUtil.java

 1 import org.hibernate.Session;
 2 import org.hibernate.SessionFactory;
 3 import org.hibernate.cfg.Configuration;
 4 
 5 /**
 6  * 工具类,控制session的唯一性
 7  * @author 
 8  * @date 2015年12月1日 下午1:24:42
 9  */
10 public class HibernateUtil {
11 
12     private final static ThreadLocal sessionTL=new ThreadLocal();
13     
14     private static Configuration configuration;
15     
16     private static final SessionFactory sessionFactory;
17     
18     static{
19         try {
20             configuration=new Configuration().configure();
21             sessionFactory=configuration.buildSessionFactory();
22         } catch (Exception e) {
23             e.printStackTrace();
24             throw new ExceptionInInitializerError(e);
25         }
26         
27     }
28     //得到session
29     public static Session currentSession(){
30         //sessionTL的get()方法根据当前线程返回其对应的线程内部变量
31         //也就是我们要的session,多线程的情况下共享数据库连接是不安全的。
32         //ThreadLocal 它能保证每个线程都有自己的session
33         Session session=(Session) sessionTL.get();
34         if(session==null){
35             //就得创建一个数据库连接的session
36             session=sessionFactory.openSession();
37             //需要将这个session保存到ThreadLocal中
38             sessionTL.set(session);
39         }
40         //如果当前线程已经访问过数据库了,
41         //则从sessionTL中get()就可以获取该线程上次获取的数据库连接对象
42         return session;
43     }
44     
45     public static void closeSession(){
46         Session session=(Session) sessionTL.get();
47         
48         sessionTL.set(null);
49         session.close();
50     }
51 }

 

HibernateUtil

原文:http://www.cnblogs.com/thrilling/p/5014047.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!