HibernateInit

package com;import net.sf.hibernate.SessionFactory;import net.sf.hibernate.cfg.Configuration;

import javax.naming.InitialContext;

/** * 说明:hibernate初始化类,如果是运行期,将从上下文中取得sessionFactory * * 2004-8-4 */public class HibernateInit {  private static HibernateInit instance= null;  private static SessionFactory sessionFactory;  //运行类型是服务器运行还是单元测试,如果是单元测试,设置其参数值为junit  private static String runType= "web";

  public static void setRunType(String type) {    runType= type;  }  public synchronized static HibernateInit getInstance() {    if (instance == null) {      instance= new HibernateInit();    }    return instance;  }

  private HibernateInit() {    initSessionFactory();  }

  private void initSessionFactory() {    Configuration conf;    try {      if (runType != null && runType.equalsIgnoreCase("junit")) {        java.net.URL configFileURL= GenerateDataBaseUtil.class.getResource("/hibernate_GenerateDB.cfg.xml");        conf= (new Configuration()).configure(configFileURL);        sessionFactory= conf.buildSessionFactory();      } else {        InitialContext ctx= new InitialContext();        sessionFactory= (SessionFactory) ctx.lookup("hibernate/session_factory");      }    } catch (Exception e) {      e.printStackTrace();    }  }

  public SessionFactory getSessionFactory() {    return sessionFactory;  }}

时间: 2024-10-15 00:57:28

HibernateInit的相关文章