package com.jenmin.sessionfactory; 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> 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 HibernateSessionFactory() { } 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() 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 configFile) { HibernateSessionFactory.configFile = configFile; sessionFactory = null; } public static Configuration getConfiguration() { return configuration; } }

小开子 LV1
2021年6月4日
1368448963 LV1
2020年11月5日
qqqqddd LV1
2020年10月26日
miaoss2 LV1
2020年7月31日
jdczuidaima LV16
2020年6月28日
tsy666666 LV8
2020年2月16日
wxd1997 LV13
2020年1月9日
zywzywzyw1 LV17
2019年9月28日
jaonsang LV25
2019年6月14日
2399431755 LV12
2019年4月3日

刘亦菲9527 LV15
2022年8月1日
我不划水
2022年4月24日
暂无贡献等级
abai250 LV1
2022年3月29日
zhuohanyuan LV10
2022年1月7日
tangjj7260 LV18
2021年11月12日
czr2233 LV9
2021年9月14日
1964867825
2021年9月6日
暂无贡献等级
天天 LV9
2021年9月4日
小开子 LV1
2021年6月4日
最代码-宋家辉 LV61
2021年5月16日