Configuring SessionFactory Hibernate 5.2

1

Does anyone know of a tutorial or can you give me an example configuration for HibernateUtil.java class for hibernate version 5.2? I have already seen some settings, including in the documentation. But I still have doubts about being new to java and hibernate.

    
asked by anonymous 24.08.2016 / 05:21

1 answer

2

Your question does not contain many details, but I think I know what afflicts you:

This utility class must be the database persistence Factory, where it will receive a persistence unit of persistence.xml : Ex01: the class name is optional, as I use the JPA specification, my class name is JPAUtil its is called HibernateUtil .

package br.com.financas.util;

import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;

    public class JPAUtil {

        private static EntityManagerFactory entityManagerFactory = Persistence
                .createEntityManagerFactory("financas");

        public EntityManager getEntityManager() {
            return entityManagerFactory.createEntityManager();
        }

    }

Note that "finances" is the persistence-unit name of the persistence.xml file;

Next we have a run class where I instantiate objects and do transactions with the bank: Ex02: Note that I look for the instance of EntityManager through class JPAUtil , in this snippet of code: (EntityManager manager = new JPAUtil().getEntityManager(); );

package br.com.financas.util;

import java.math.BigDecimal;
import java.util.Calendar;

import javax.persistence.EntityManager;

import br.com.financas.modelo.Conta;
import br.com.financas.modelo.Movimentacao;
import br.com.financas.modelo.TipoMovimentacao;

public class PopulaBanco {

    public static void main(String[] args) {

        EntityManager manager = new JPAUtil().getEntityManager();

        manager.getTransaction().begin();

        Conta conta1 = new Conta();
        Conta conta2 = new Conta();
        Conta conta3 = new Conta();
        Conta conta4 = new Conta();
        Conta conta5 = new Conta();

        conta1.setBanco("001 - BANCO DO BRASIL");
        conta1.setNumero("16987-8");
        conta1.setAgencia("6543-0");
        conta1.setTitular("Maria dos Santos");

        conta2.setBanco("237 - BANCO BRADESCO");
        conta2.setNumero("86759-1");
        conta2.setAgencia("1745");
        conta2.setTitular("Paulo Roberto Souza");

        conta3.setBanco("341 - BANCO ITAU UNIBANCO");
        conta3.setNumero("46346-3");
        conta3.setAgencia("4606");
        conta3.setTitular("Antonio Duraes");

        conta4.setBanco("033 - BANCO SANTANDER");
        conta4.setNumero("12345-6");
        conta4.setAgencia("9876-0");
        conta4.setTitular("Leandra Marques");

        conta5.setBanco("104 - CAIXA ECONOMICA FEDERAL");
        conta5.setNumero("987654-3");
        conta5.setAgencia("1234");
        conta5.setTitular("Alexandre Duarte");

        // persistindo as contas
        manager.persist(conta1);
        manager.persist(conta2);
        manager.persist(conta3);
        manager.persist(conta4);
        manager.persist(conta5);

        // Movimentacoes da conta1
        Movimentacao movimentacao1 = new Movimentacao();
        Movimentacao movimentacao2 = new Movimentacao();
        Movimentacao movimentacao3 = new Movimentacao();
        Movimentacao movimentacao4 = new Movimentacao();

        movimentacao1.setData(Calendar.getInstance());
        movimentacao1.setDescricao("Conta de luz - ABRIL/2012");
        movimentacao1.setValor(new BigDecimal("135"));
        movimentacao1.setTipoMovimentacao(TipoMovimentacao.SAIDA);
        movimentacao1.setConta(conta1);

        manager.persist(movimentacao1);

        movimentacao2.setData(Calendar.getInstance());
        movimentacao2.setDescricao("Almoco no Restaurante - AGOSTO/2012");
        movimentacao2.setValor(new BigDecimal("175.80"));
        movimentacao2.setTipoMovimentacao(TipoMovimentacao.SAIDA);
        movimentacao2.setConta(conta1);

        manager.persist(movimentacao2);

        movimentacao3.setData(Calendar.getInstance());
        movimentacao3.setDescricao("Aluguel - MAIO/2012");
        movimentacao3.setValor(new BigDecimal("680.00"));
        movimentacao3.setTipoMovimentacao(TipoMovimentacao.ENTRADA);
        movimentacao3.setConta(conta1);

        manager.persist(movimentacao3);

        movimentacao4.setData(Calendar.getInstance());
        movimentacao4.setDescricao("Salario - FEVEREIRO/2012");
        movimentacao4.setValor(new BigDecimal("3830.68"));
        movimentacao4.setTipoMovimentacao(TipoMovimentacao.ENTRADA);
        movimentacao4.setConta(conta1);

        manager.persist(movimentacao4);

        // Movimentacoes da conta2
        Movimentacao movimentacao5 = new Movimentacao();
        Movimentacao movimentacao6 = new Movimentacao();

        movimentacao5.setData(Calendar.getInstance());
        movimentacao5.setDescricao("Conta de telefone - SETEMBRO/2011");
        movimentacao5.setValor(new BigDecimal("168.27"));
        movimentacao5.setTipoMovimentacao(TipoMovimentacao.SAIDA);
        movimentacao5.setConta(conta2);

        manager.persist(movimentacao5);

        movimentacao6.setData(Calendar.getInstance());
        movimentacao6.setDescricao("Aniversario - MAIO/2011");
        movimentacao6.setValor(new BigDecimal("200"));
        movimentacao6.setTipoMovimentacao(TipoMovimentacao.ENTRADA);
        movimentacao6.setConta(conta2);

        manager.persist(movimentacao6);

        // Movimentacoes da conta3
        Movimentacao movimentacao7 = new Movimentacao();
        Movimentacao movimentacao8 = new Movimentacao();
        Movimentacao movimentacao9 = new Movimentacao();

        movimentacao7.setData(Calendar.getInstance());
        movimentacao7.setDescricao("Lanche - JULHO/2011");
        movimentacao7.setValor(new BigDecimal("28.50"));
        movimentacao7.setTipoMovimentacao(TipoMovimentacao.SAIDA);
        movimentacao7.setConta(conta3);

        manager.persist(movimentacao7);

        movimentacao8.setData(Calendar.getInstance());
        movimentacao8.setDescricao("Presente - DEZEMBRO/2011");
        movimentacao8.setValor(new BigDecimal("49.99"));
        movimentacao8.setTipoMovimentacao(TipoMovimentacao.SAIDA);
        movimentacao8.setConta(conta3);

        manager.persist(movimentacao8);

        movimentacao9.setData(Calendar.getInstance());
        movimentacao9.setDescricao("Bonus - JANEIRO/2012");
        movimentacao9.setValor(new BigDecimal("2000"));
        movimentacao9.setTipoMovimentacao(TipoMovimentacao.ENTRADA);
        movimentacao9.setConta(conta3);

        manager.persist(movimentacao9);

        // Movimentacoes da conta4
        Movimentacao movimentacao10 = new Movimentacao();

        movimentacao10.setData(Calendar.getInstance());
        movimentacao10.setDescricao("Carnaval - MARCO/2012");
        movimentacao10.setValor(new BigDecimal("765.20"));
        movimentacao10.setTipoMovimentacao(TipoMovimentacao.SAIDA);
        movimentacao10.setConta(conta4);

        manager.persist(movimentacao10);

        // Movimentacoes da conta5
        Movimentacao movimentacao11 = new Movimentacao();
        Movimentacao movimentacao12 = new Movimentacao();

        movimentacao11.setData(Calendar.getInstance());
        movimentacao11.setDescricao("Salario - ABRIL/2012");
        movimentacao11.setValor(new BigDecimal("2651.90"));
        movimentacao11.setTipoMovimentacao(TipoMovimentacao.ENTRADA);
        movimentacao11.setConta(conta5);

        manager.persist(movimentacao11);

        movimentacao12.setData(Calendar.getInstance());
        movimentacao12.setDescricao("Bonus - JANEIRO/2012");
        movimentacao12.setValor(new BigDecimal("1000"));
        movimentacao12.setTipoMovimentacao(TipoMovimentacao.ENTRADA);
        movimentacao12.setConta(conta5);

        manager.persist(movimentacao12);

        manager.getTransaction().commit();

        manager.close();
    }

}

the file persistence.xml :

Ex03:

<persistence xmlns="http://java.sun.com/xml/ns/persistence"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
        http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
    version="2.0">

    <!-- unidade de persistencia com o nome financas -->
    <persistence-unit name="financas">

        <!-- Implementação do JPA, no nosso caso Hibernate -->
        <provider>org.hibernate.ejb.HibernatePersistence</provider>

        <!-- Aqui são listadas todas as entidades -->
        <class>br.com.financas.modelo.Conta</class>
        <class>br.com.financas.modelo.Movimentacao</class>

        <properties>

            <!-- Propriedades JDBC -->
            <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver" />
            <property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost/financas" />
            <property name="javax.persistence.jdbc.user" value="root" />
            <property name="javax.persistence.jdbc.password" value="javax321" />

            <!-- Configurações específicas do Hibernate -->
            <property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5InnoDBDialect" />
            <property name="hibernate.hbm2ddl.auto" value="update" />
            <property name="hibernate.show_sql" value="true" />
            <property name="hibernate.format_sql" value="true" />
        </properties>
    </persistence-unit>
</persistence>
    
26.08.2016 / 14:26