zoukankan      html  css  js  c++  java
  • HibernateUtil.java,用于打开和关闭session,可在每一个项目里复用

     1 package cn.jbit.auction.dao;
     2 
     3 import org.hibernate.Session;
     4 import org.hibernate.SessionFactory;
     5 import org.hibernate.cfg.Configuration;
     6 
     7 public class HibernateUtil {
     8     // 初始化一个ThreadLocal对象
     9     private static final ThreadLocal sessionTL = new ThreadLocal(); 
    10     private static Configuration configuration;
    11     private final static SessionFactory sessionFactory;
    12     static {
    13         try {
    14             configuration = new Configuration().configure();
    15             sessionFactory = configuration.buildSessionFactory();
    16         } catch (Throwable ex) {
    17             throw new ExceptionInInitializerError(ex);
    18         }
    19     }
    20     public static Session currentSession() {
    21         //sessionTL的get()方法根据当前线程返回其对应的线程内部变量,
    22         //也就是我们需要的Session,多线程情况下共享数据库连接是不安全的。
    23         //ThreadLocal保证了每个线程都有自己的Session。
    24         Session session = (Session) sessionTL.get(); 
    25         // 如果session为null,则打开一个新的session
    26         if (session == null) { 
    27             //创建一个数据库连接对象session。
    28             session = sessionFactory.openSession(); 
    29             // 保存该数据库连接session到ThreadLocal中。
    30             sessionTL.set(session); 
    31         }
    32         //如果当前线程已经访问过数据库了,
    33         //则从sessionTL中get()就可以获取该线程上次获取过的数据库连接对象。
    34         return session; 
    35     }
    36     /**
    37      * 关闭Session
    38      */
    39     public static void closeSession(){
    40         Session session = (Session) sessionTL.get(); 
    41         sessionTL.set(null);
    42         session.close();
    43     }
    44 }
  • 相关阅读:
    BZOJ3048: [Usaco2013 Jan]Cow Lineup
    BZOJ1605: [Usaco2008 Open]Crisis on the Farm 牧场危机
    BZOJ3887: [Usaco2015 Jan]Grass Cownoisseur
    BZOJ5055: 膜法师
    BZOJ2037: [Sdoi2008]Sue的小球
    BZOJ1722: [Usaco2006 Mar] Milk Team Select 产奶比赛
    Uva 11054 Wine trading in Gergovia
    poj 2549 Sumsets
    Uva 1326 Jurassic Remains
    Uva 10755 Garbage Heap
  • 原文地址:https://www.cnblogs.com/jimorulang/p/5554276.html
Copyright © 2011-2022 走看看