package top.dragong; import org.hibernate.*; import org.hibernate.cfg.*; import org.hibernate.service.*; /** * Description: * @author VipMao * @version 1.0 */ /** * �ù������ṩ��һ�����ԣ�SessionFactory sessionFactory ��������sessionFactory �������ó�static * �����������Ϳ���ֱ��ͨ��˹��������� �ṩ�˶�������: 1��ͨ���̴߳���Session-->currentSession() * 2���ر�Session-->closeSession() ��Ҫ���������ֶ��ر�sessionFactory */ public class HibernateUtil { private static String CONFIG_FILE_LOCATION = "/hibernate.cfg.xml"; private static final ThreadLocal<Session> sessionThreadLocal = new ThreadLocal<Session>(); private static Configuration configuration = new Configuration(); private static SessionFactory sessionFactory; private static String configFile = CONFIG_FILE_LOCATION; static { configuration.configure(); ServiceRegistry serviceRegistry = new ServiceRegistryBuilder().applySettings(configuration.getProperties()) .applySettings(configuration.getProperties()).buildServiceRegistry(); sessionFactory = configuration.buildSessionFactory(serviceRegistry); } private HibernateUtil() { } public static SessionFactory getSessionFactory() { return sessionFactory; } public static void rebuildSessionFactory() { try { configuration.configure(configFile); ServiceRegistry serviceRegistry = new ServiceRegistryBuilder() .applySettings(configuration.getProperties()) .buildServiceRegistry(); sessionFactory = configuration.buildSessionFactory(serviceRegistry); } catch (HibernateException e) { e.printStackTrace(); } } public static Session getSession() { Session session = (Session) sessionThreadLocal.get(); try { if (session == null || !session.isOpen()) { if (sessionFactory == null) { rebuildSessionFactory(); } } session = (sessionFactory != null) ? sessionFactory.openSession() : null; sessionThreadLocal.set(session); } catch (HibernateException e) { e.printStackTrace(); } return session; } public static void closeSession() { Session session = (Session) sessionThreadLocal.get(); sessionThreadLocal.set(null); try { if (session != null && session.isOpen()) { session.close(); } } catch (HibernateException e) { e.printStackTrace(); } } public static void setConfigFile(String configFile) { HibernateUtil.configFile = configFile; sessionFactory = null; } public static Configuration getConfiguration() { return configuration; } }

13043860zj LV16
2020年8月20日
段朝洪 LV15
2019年11月25日
caozhou LV14
2019年3月11日
我的名字是凑得 LV8
2018年12月23日
wangmeng20 LV14
2018年11月1日
z980693651 LV10
2018年10月20日
wlzyf冰冰 LV13
2018年7月5日
gongjunjienb LV15
2018年6月2日
mkl_mzq LV10
2018年5月16日
812992358 LV11
2018年5月8日