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 src.conexao; import org.hibernate.SessionFactory; import org.hibernate.boot.registry.StandardServiceRegistryBuilder; import org.hibernate.cfg.Configuration; import org.hibernate.service.ServiceRegistry; /** * * @author Jordan-PC */ public class HibernateUtil { private static SessionFactory buildSessionFactory() { try { //objeto que armazena configuraes do hibernate.cfg.xml Configuration configuration = new Configuration(); //mtodo que l e valida as configuraes em hibernate.cfg.xml configuration.configure(); StandardServiceRegistryBuilder serviceRegistryBuilder = new StandardServiceRegistryBuilder(); //aplica e carrega as configuraes no objeto serviceRegistry serviceRegistryBuilder.applySettings(configuration.getProperties()); //objeto responsvel pela configuraes do hibernate.cfg.xml ServiceRegistry serviceRegistry = serviceRegistryBuilder.build(); //cria uma ou mais instncias de sesso da configurao. //Geralmente uma aplicao tem uma nica instncia de sesso e threads servindo pedidos de clientes //obtendo instncias da sesso do factory(fbrica) //fabrica uma ou mais instncia de sesses de acesso ao banco a partir da configuraes do objeto serviceRegistry return configuration.buildSessionFactory(serviceRegistry); } catch (Throwable e) { throw new ExceptionInInitializerError("Criacao do objeto falhou: " + e); } } public static SessionFactory getSessionFactory() { return buildSessionFactory(); } public static void shutdown() { // Close caches and connection pools getSessionFactory().close(); } }