hibernatesessionfactory

来源:互联网 发布:入骨相思知不知 第五期 编辑:程序博客网 时间:2024/05/22 06:39

package com.pb.hibernate.util;

importjava.sql.SQLException;    
importorg.hibernate.HibernateException;  
importorg.hibernate.Session;  
importorg.hibernate.SessionFactory;  
importorg.hibernate.cfg.Configuration;  
 
 
public class HibernateSessionFactory{  
 
    
   private static StringCONFIG_FILE_LOCATION ="/com/hibernate/hibernate.cfg.xml";  
   private static finalThreadLocal threadLocal = newThreadLocal();  
   private  static Configuration configuration = newConfiguration();  
    privatestatic SessionFactorysessionFactory;  
    privatestatic String configFile =CONFIG_FILE_LOCATION;  
 
    privateHibernateSessionFactory(){  
    
      
    
    publicstatic Session getCurrentSession() throws HibernateException{  
       Session session = (Session)threadLocal.get();  
 
       try {  
           if (session == null || !session.isOpen()||session.connection().isClosed()){  
               if (sessionFactory == null){  
                   rebuildSessionFactory();  
               
              session = (sessionFactory != null) ?sessionFactory.openSession()  
                       : null;  
               threadLocal.set(session);  
            
       } catch (SQLException e){  
           // TODO Auto-generated catchblock  
           e.printStackTrace();  
        
       return session;  
    
 
    
    publicstatic void rebuildSessionFactory(){  
       try {  
           configuration.configure(configFile);  
           sessionFactory =configuration.buildSessionFactory();  
       } catch (Exception e) {  
           System.err  
                     .println("%%%% Error Creating SessionFactory%%%%");  
           e.printStackTrace();  
        
    
 
    
    publicstatic void closeCurrentSession() throws HibernateException{  
       Session session = (Session)threadLocal.get();  
       threadLocal.set(null);  

       if (session != null) {  
           session.close();                
     
    publicstatic SessionFactory getSessionFactory(){  
       return sessionFactory;  
    
 
    
    publicstatic void setConfigFile(String configFile){  
       HibernateSessionFactory.configFile =configFile;  
       sessionFactory = null;  
    
 
    
    publicstatic Configuration getConfiguration(){  
       return configuration;  
    
 
}

0 0
原创粉丝点击