Olá desenvolvedores, neste tutorial iremos criar a classe Java Hibernate Util que lerá o arquivo persistence.xml. Como visto em “PERSISTENCE: CONFIGURANDO O ARQUIVO” o arquivo persistência traz todas as informações de configuração essenciais a conexão com a base de dados.
Para criar a classe que lerá o arquivo de configuração para a conexão com o banco de dados, clique com o botão direito do mouse sobre o pacote “posjavamavenhibernate” >> New >> Class. Chame a classe de HibernateUtil.
Assim, quando alguma operação de banco de dados for realizada a classe HibernateUtil será chamada, ela lera o arquivo persistence.xml e instanciará a conexão com a base de dados.
O arquivo de persistência só poderá ser lido uma única vez. Dessa forma a classe HibernateUtil fará uso do PADRÃO DE PROJETO SINGLETON que permite a criação de objetos únicos para os quais há apenas uma instância. Desse modo, a classe poderá oferecer um ponto de acesso global. Assim, faremos uma “chamada” a API Entity Manager, declarada como estática.
public static EntityManagerFactory factory = null;
Entity Manager são configurados para ler e escrever em uma base de dados e são implementados por um servidor de persistência, como o Hibernate. E assim, todas as operações são encapsuladas em interfaces EntityManager do tipo EntityManagerFactory.
MÉTODO INIT()
E então criamos o método init() que de fato será o responsável pela leitura do arquivo “persistence.xml”. Este método implementará um try/catch para que possamos identificar quaisquer eventuais erros.
Antes porém, da implementação do método init() criaremos um static que o chamará de forma direta.
static{
init();
}
Dentro do bloco try do método, uma verificação será feita para que o arquivo de persistência seja lido apenas uma vez. Se o factory for nulo o arquivo persistence.xml será lido. Note que passaremos como argumento o nome dado ao persistence-unit no arquivo de configuração.
Assim sempre que o HibernateUnit for chamado não haverá necessidade de instanciação do objeto, no entanto o init() será invocado. Se for a primeira vez que o método é invocado o arquivo persistence.xml será lido. Mas se não for a primeira vez que o método foi invocado, então será retornado o arquivo EntityManagerFactory.
Precisaremos também de implementar um método que será o gerenciador de entidades, e assim podermos fazer as operações de banco de dados. Será o método responsável por prover a parte de persistência.
EM POUCAS PALAVRAS
Criamos e estruturamos neste tutorial a classe responsável pela leitura do arquivo persistence.xml. A criação dessa classe englobou conceitos do Padrão de Projeto Singleton. Além disso, criamos também um Entity Manager, a API que nos permite realizar diversas operações como a inserção de dados, atualização, exclusão, consulta, gerenciamento de transações, entre muitas outras disponíveis.