HibernateUtil

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 }

 

转载于:https://www.cnblogs.com/thrilling/p/5014047.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值