Java tutorial
/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package com.aptech.model; import com.mysql.jdbc.log.LogFactory; import org.hibernate.HibernateException; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.Transaction; import org.hibernate.cfg.Configuration; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** * * @author SonVu */ public class HibernateFactory { private static SessionFactory sessionFactory; private static final Logger log = LoggerFactory.getLogger(HibernateFactory.class); /** * Constructs a new Singleton SessionFactory * @return * @throws HibernateException */ public static SessionFactory buildSessionFactory() throws HibernateException { if (sessionFactory != null) { closeFactory(); } return configureSessionFactory(); } /** * Builds a SessionFactory, if it hasn't been already. */ public static SessionFactory buildIfNeeded() throws DataAccessLayerException { if (sessionFactory != null) { return sessionFactory; } try { return configureSessionFactory(); } catch (HibernateException e) { throw new DataAccessLayerException(e); } } public static SessionFactory getSessionFactory() { return sessionFactory; } public static Session openSession() throws HibernateException { buildIfNeeded(); return sessionFactory.openSession(); } public static void closeFactory() { if (sessionFactory != null) { try { sessionFactory.close(); } catch (HibernateException ignored) { log.error("Couldn't close SessionFactory", ignored); } } } public static void close(Session session) { if (session != null) { try { session.close(); } catch (HibernateException ignored) { log.error("Couldn't close Session", ignored); } } } public static void rollback(Transaction tx) { try { if (tx != null) { tx.rollback(); } } catch (HibernateException ignored) { log.error("Couldn't rollback Transaction", ignored); } } /** * * @return * @throws HibernateException */ private static SessionFactory configureSessionFactory() throws HibernateException { Configuration configuration = new Configuration(); configuration.configure(); sessionFactory = configuration.buildSessionFactory(); return sessionFactory; } }