Hibernate Session Factory,hibernatefactory,[Java]代码impo
分享于 点击 8727 次 点评:185
Hibernate Session Factory,hibernatefactory,[Java]代码impo
[Java]代码
import org.hibernate.HibernateException;import org.hibernate.Session;import org.hibernate.SessionFactory;import org.hibernate.cfg.Configuration;public class Proxy { private static String CONFIG_FILE_LOCATION = "/hibernate.cfg.xml"; private static final ThreadLocal<Session> threadLocal = 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 Proxy() { } public static 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; } 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() { Session session = null; try { session = (Session) threadLocal.get(); threadLocal.set(null); if (session != null) { session.close(); } } catch (Exception e) { e.printStackTrace(); } finally { if (session != null) { session.close(); } } } public static SessionFactory getSessionFactory() { return sessionFactory; } public static void setConfigFile(String configFile) { Proxy.configFile = configFile; sessionFactory = null; } public static Configuration getConfiguration() { return configuration; }}
用户点评