package com.cse10.database; /** * Created by TharinduWijewardane on 02.07.2014. */ import org.apache.log4j.Logger; import org.hibernate.SessionFactory; import org.hibernate.boot.registry.StandardServiceRegistryBuilder; import org.hibernate.cfg.Configuration; public class HibernateUtil { private static Logger logger = Logger.getLogger(HibernateUtil.class); private static SessionFactory sessionFactory = buildSessionFactory(); private static SessionFactory buildSessionFactory() { try { Configuration configuration = new Configuration(); configuration.setProperty("hibernate.connection.username", DatabaseConstants.DB_USERNAME); configuration.setProperty("hibernate.connection.password", DatabaseConstants.DB_PASSWORD); configuration.setProperty("hibernate.connection.url", DatabaseConstants.DB_URL); configuration.configure(); StandardServiceRegistryBuilder builder = new StandardServiceRegistryBuilder().applySettings(configuration.getProperties()); SessionFactory sessionFactory = configuration.buildSessionFactory(builder.build()); return sessionFactory; } catch (Throwable ex) { // Make sure you log the exception, as it might be swallowed logger.info("Initial SessionFactory creation failed." + ex); throw new ExceptionInInitializerError(ex); } } public static SessionFactory getSessionFactory() { if (sessionFactory.isClosed()) { sessionFactory = buildSessionFactory(); } return sessionFactory; } public static void shutdown() { // Close caches and connection pools getSessionFactory().close(); } } /////////// merge hbm and properties file //try { // Properties dbConnectionProperties = new Properties(); // try { // dbConnectionProperties.load(ClassLoader.getSystemClassLoader().getResourceAsStream("dbConnection.properties")); // } catch (Exception e) { // logger.info("Error: dbConnection.properties file read error: ", e); // } // // Configuration configuration = new Configuration().mergeProperties(dbConnectionProperties).configure(); // StandardServiceRegistryBuilder builder = new StandardServiceRegistryBuilder().applySettings(configuration.getProperties()); // SessionFactory sessionFactory = configuration.buildSessionFactory(builder.build()); // // return sessionFactory; // // } catch (Throwable ex) { // // Make sure you log the exception, as it might be swallowed // logger.info("Initial SessionFactory creation failed." + ex); // throw new ExceptionInInitializerError(ex); // } ////////// only from hbm file //try{ // Configuration configuration = new Configuration().configure(); // StandardServiceRegistryBuilder builder = new StandardServiceRegistryBuilder().applySettings(configuration.getProperties()); // SessionFactory sessionFactory = configuration.buildSessionFactory(builder.build()); // return sessionFactory; // } catch (Throwable ex) { // // Make sure you log the exception, as it might be swallowed // System.err.println("Initial SessionFactory creation failed." + ex); // throw new ExceptionInInitializerError(ex); // } ///////// old // try { // // Create the SessionFactory from hibernate.cfg.xml // return new Configuration().configure().buildSessionFactory(); // } catch (Throwable ex) { // // Make sure you log the exception, as it might be swallowed // System.err.println("Initial SessionFactory creation failed." + ex); // throw new ExceptionInInitializerError(ex); // }