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; }}
