欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2024-02-22 17:45:16
复制代码 代码如下:package dao; import org.hibernate.hibernateexception;import org.hibernate.s...

复制代码 代码如下:

package dao;

import org.hibernate.hibernateexception;
import org.hibernate.session;
import org.hibernate.cfg.configuration;

/**
 * @author minxuenetcn
 */
public class hibernatesessionfactory { 

    private final threadlocal<session> threadlocal = new threadlocal<session>(); 
    private configuration configuration = new configuration();  
    private org.hibernate.sessionfactory sessionfactory; 

    /**
     * hibernate.cfg.xml
     * @param configfile
     */
    public void setconfiguration(string configfile){
     this.configuration=new configuration();
     configuration.configure(configfile);

    } 
    /**
     * returns the threadlocal session instance.
     *  @return session
     *  @throws hibernateexception
     */ 
    public session getsession() throws hibernateexception { 
        session session = (session) threadlocal.get(); 
        if (session == null || !session.isopen()) { 
            if (sessionfactory == null) { 
                rebuildsessionfactory(); 
            } 
            session = (sessionfactory != null) ? sessionfactory.opensession() 
                    : null; 
            threadlocal.set(session); 
        } 
        return session; 
    } 
    /**
     *  rebuild hibernate session factory
     *
     */ 
    public void rebuildsessionfactory() {   

     try { 
            sessionfactory = this.configuration.buildsessionfactory(); 
        } catch (exception e) { 
            system.err 
                    .println("%%%% error creating sessionfactory %%%%"); 
            e.printstacktrace(); 
        } 
    } 

    /**
     *  close the single hibernate session instance.
     *
     *  @throws hibernateexception
     */ 
    public void closesession() throws hibernateexception { 
        session session = (session) threadlocal.get(); 
        threadlocal.set(null); 
        if (session != null) { 
            session.close(); 
        } 
    } 
    /**
     *  return session factory
     *
     */ 
    public org.hibernate.sessionfactory getsessionfactory() { 
        return sessionfactory; 
    } 
    /**
     *  return hibernate configuration
     */ 
    public configuration getconfiguration() { 
        return configuration; 
    } 
}