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>