Hibernate工具类

来源:互联网 发布:小米5x手机壳淘宝卡通 编辑:程序博客网 时间:2024/05/29 14:25
package com.bsoft.emrviewws.util;import org.hibernate.HibernateException;import org.hibernate.Session;import org.hibernate.cfg.Configuration;public class HibernateUtil {    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 HibernateUtil() {    }    public static synchronized  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) {HibernateUtil.configFile = configFile;sessionFactory = null;}public static Configuration getConfiguration() {return configuration;}}

原创粉丝点击