Olá desenvolvedores, hoje, utilizando o hibernate aprenderemos a criar uma classe DAO genérica. O DAO – Data Access Object tem como objetivo encapsular todos os acessos ao banco de dados. Assim, o DAO fornece uma interface para que as diversas camadas da aplicação possam se comunicar com a base de dados.

O DAO é um padrão que “gerencia” toda a lógica de persistência de dados de uma aplicação.

CRIANDO O DAO

Para criar a classe DAO clique com o botão direito do mouse sobre o pacote de códigos fonte o src/main/java >> New >> Package. Atribua ao novo pacote o nome “dao”, dentro do pacote crie a classe “DaoGeneric”.

Esta classe instancia um Entity Manager que é uma API configurada para ler e escrever em uma base de dados, cujas operações são encapsuladas em interfaces EntityManager do tipo EntityManagerFactory.

Assim, dentro da classe criamos o método responsável por salvar os dados e que por parâmetro receberá uma entidade genérica. O método instancia uma interface responsável pelo gerenciamento de transações das entidades. Esta interface é o EntityTransaction que também responde pela abertura do escopo de transação em um EntityManager.

Para abrir o escopo de transação do EntityManager é preciso primeiro, iniciar a transação.

transaction.begin();

Para só então procedermos com a persistência dos dados. Persistir os dados é garantir que eles sejam salvos e que estarão disponíveis para serem recuperados posteriormente, se for necessário.

entityManager.persist(entidade)

E uma vez persistido os dados é preciso commitar os dados. O commit é o ato de enviar dados ou códigos para serem armazenados, neste caso, em um banco de dados.

transaction.commit();

CLASSE DE TESTE

Na classe de teste instanciaremos dentro do método testeHibernateUtil() o “DaoGeneric” passando como argumento a entidade UsuarioPessoa. É preciso também instanciar a entidade.

E então “setaremos” os atributos passando neste momento, de forma estática, os dados para serem persistidos.

E por fim chamaremos o método salvar() passando como argumento o objeto pessoa que carrega todos os dados para serem persistidos no banco de dados.

daoGeneric.salvar(pessoa)

Para efetivamente testar a aplicação selecione o nome do método testeHIbernateUtil() clique com o botão direito do mouse >> Run As … JUnit Test. E então é só verificar na base de dados se os dados foram salvos com sucesso.

EM POUCAS PALAVRAS

Neste tutorial criamos e implementamos uma classe DAO genérica para a persistência dos dados com o Hibernate. E então adequamos a classe de teste para utilizar o DAO para salvar os dados.