hibernate官网下的管理session的例子

hibernate官网上的管理session的例子

package sict.wenlong.operation;

 

import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;

public class HibernateUitl {
 private static SessionFactory sessionFactory;
 static{
  try{
   sessionFactory = new Configuration().configure().buildSessionFactory();
  }catch(HibernateException ex){
   throw new RuntimeException("Configuration problem:"+ex.getMessage(),ex);
  }
 }
 
 public static final ThreadLocal session =new ThreadLocal();
 
 public static Session currentSession() throws HibernateException{
  Session s=(Session)session.get();
  //Open a new Session,if this Thread has none yet
  if(s==null){
   s=sessionFactory.openSession();
   session.set(s);
  }
  return s;
 }
 
 public static void closeSession() throws HibernateException{
  Session s=(Session)session.get();
  session.set(null);
  if(s!=null){
   s.close();
  }
 }
}