threadlocal报错
不开窍的鱼 2013-08-08 02:30:03 package com.yinbo.tbms.jljiao;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.cfg.Configuration;
public class HibernateSessionFactory {
private static String CONFIG_FILE_LOCATION="/hibernate.cfg.xml";
private static final ThreadLocal<Session>thredLocal=new ThreadLocal<Session>();
private static Configuration configuration=new Configuration();
private static org.hibernate.SessionFactory sessionFactory;
private static String configFile=CONFIG_FILE_LOCATION;
static{
try{
configuration.configure(configFile);
sessionFactory=configuration.buildSessionFactory();
}catch(Exception e){
System.err.println("%%%% Error Creating SessionFactory %%%%");
e.printStackTrace();
}
}
private HibernateSessionFactory()
{
}
public static Session getSession() throws HibernateException
{
Session session=(Session)threadLocal.get();
if(session==null||!session.isOpen())
{
rebuildSessionFactory();
}
session=(sessionFactory!=null)?sessionFactory.openSession():null;
threadLocal.set(session);
return session;
}
public static void rebuildSessionFactory(){
try{
configuration.configure(configFile);
sessionFactory=configuration.buildSessionFactory();
}catch(Exception e){
System.err.println("%%%% Error Creating SessionFactory %%%%");
e.printStackTrace();
}
}
public static void closeSession() throws HibernateException{
Session session=(Session)threadLocal.get();
threadLocal.set(null);
if(session!=null)
{
session.close();
}
}
public static org.hibernate.SessionFactory getSessionFactory(){
return sessionFactory;
}
public static void setConfigFile(String conFile){
HibernateSessionFactory.configFile=configFile;
sessionFactory=null;
}
public static Configuration getConfiguration(){
return configuration;
}
}