zl程序教程

您现在的位置是:首页 >  后端

当前栏目

java自定义动态链接数据库示例

JAVA数据库链接 示例 动态 自定义
2023-06-13 09:15:18 时间

复制代码代码如下:


packagedao;

importorg.hibernate.HibernateException;
importorg.hibernate.Session;
importorg.hibernate.cfg.Configuration;

/**
 *@authorminxuenetcn
 */
publicclassHibernateSessionFactory{ 

   privatefinalThreadLocal<Session>threadLocal=newThreadLocal<Session>(); 
   privateConfigurationconfiguration=newConfiguration();  
   privateorg.hibernate.SessionFactorysessionFactory; 

   /**
    *hibernate.cfg.xml
    *@paramconfigFile
    */
   publicvoidsetConfiguration(StringconfigFile){
    this.configuration=newConfiguration();
    configuration.configure(configFile);

   } 
   /**
    *ReturnstheThreadLocalSessioninstance.
    * @returnSession
    * @throwsHibernateException
    */ 
   publicSessiongetSession()throwsHibernateException{ 
       Sessionsession=(Session)threadLocal.get(); 
       if(session==null||!session.isOpen()){ 
           if(sessionFactory==null){ 
               rebuildSessionFactory(); 
           } 
           session=(sessionFactory!=null)?sessionFactory.openSession() 
                   :null; 
           threadLocal.set(session); 
       } 
       returnsession; 
   } 
   /**
    * Rebuildhibernatesessionfactory
    *
    */ 
   publicvoidrebuildSessionFactory(){  

    try{ 
           sessionFactory=this.configuration.buildSessionFactory(); 
       }catch(Exceptione){ 
           System.err 
                   .println("%%%%ErrorCreatingSessionFactory%%%%"); 
           e.printStackTrace(); 
       } 
   } 

   /**
    * Closethesinglehibernatesessioninstance.
    *
    * @throwsHibernateException
    */ 
   publicvoidcloseSession()throwsHibernateException{ 
       Sessionsession=(Session)threadLocal.get(); 
       threadLocal.set(null); 
       if(session!=null){ 
           session.close(); 
       } 
   } 
   /**
    * returnsessionfactory
    *
    */ 
   publicorg.hibernate.SessionFactorygetSessionFactory(){ 
       returnsessionFactory; 
   } 
   /**
    * returnhibernateconfiguration
    */ 
   publicConfigurationgetConfiguration(){ 
       returnconfiguration; 
   } 
}