HIBERNATE E JPA: CONCEITOS PARA UTILIZAÇÃO
Adroaldo Antônio Candido Neto, Luciene Chagas de Oliveira,
Ana Carolina Moraes Oliveira, Diogo Barreiro de Lemos
Universidade de Uberaba - UNIUBEGraduação em Engenharia de Computação Uberlândia – MG, Brasil
adroaldoneto94@outlook.com , lchagasoliveira@gmail.com, ana-moraesoliveira@hotmail.com, mutukax@hotmail.com Resumo – A praticidade, agilidade e a qualidade no
desenvolvimento de uma aplicação são fatores cruciais, no qual, as empresas neste ramo estão sempre à procura de novas tecnologias, para ter um produto final que satisfaça tanto o cliente quanto quem o desenvolveu. Com essa finalidade, os frameworks Hibernate e JPA vieram para ajudar cumprir esses critérios, permitindo o programador um foco maior em outros quesitos.
Palavras-Chave – praticidade, Hibernate, JPA, frameworks.
HIBERNATE E JPA: CONCEPTS FOR USE
Abstract - The practicality, agility and quality in the development of an application are crucial factors in which the companies in this business are always looking for new technologies to have a final product that meets both the client and who developed it. To this end, the frameworks Hibernate and JPA came to help meet these criteria, allowing the programmer a greater focus on other issues.
1
Keywords – practicality, Hibernate, JPA, frameworks. I. INTRODUÇÃO
No ambiente corporativo é necessário sempre estar buscando novas tecnologias, para agilizar na entrega e na qualidade do produto final. Uma parte significativa desse resultado depende dos sistemas que estão implantados nas organizações que possibilitam atualizar as informações em tempo real, deixando visível cada processo da empresa. É de suma importância que os profissionais que desenvolvam esses sistemas sejam capacitados, com a finalidade de produzir com eficiência e permitindo que o código fonte fique compreensível para uma futura manutenção.
As empresas necessitam de confiabilidade em um sistema que seja capaz de trabalhar com os dados de seus clientes de forma integra. E um outro ponto, a portabilidade de um sistema corporativo muitas vezes é complexa, por não se pensar neste ponto quando é desenvolvido. A linguagem de programação e os frameworks são escolhidos para preencher
esses critérios. Entre as linguagens podemos destacar o Java e os frameworks Hibernate e JPA.
Java é uma das linguagens de programação mais utilizada no mundo, pois possui uma grande variedade de conteúdos e frameworks disponíveis, e as atualizações são constantes. Pode ser desenvolvida em qualquer sistema operacional e executada em qualquer plataforma, desde de que tenha instalado uma máquina virtual de Java (JVM) [1]. Por ser uma linguagem orientada a objeto, sua utilização é ainda maior, visto que possibilita o reaproveitamento de código tornando-a mais simples de compreender.
O Hibernate utiliza as especificações do JPA, mas o JPA veio posteriormente. Foi desenvolvido na linguagem Java e facilita a integração da aplicação com banco de dados, uma vez que a programação orientada a objetos difere muito do modelo de entidade relacional, são duas maneiras diferentes de trabalhar, objetos e registros. É uma ferramenta de mapeamento objeto-relacional (ORM), que torna simples o código SQL e comunicação com o banco, os quais são geradas em tempo de execução. Isso representa uma grande vantagem na migração para outro banco de dados[2].
Os frameworks apresentados anteriormente, utilizados em conjunto, auxiliam no desenvolvimento dos sistemas corporativos, pois trabalha com as classes diretamente, não sendo necessário a utilização de códigos SQL. Dessa forma, o desenvolvedor consegue entregar o produto final em um menor tempo, com a mesma qualidade ou superior.
O esquema que será desenvolvido tem como finalidade a integração da linguagem de programação Java, Hibernate e JPA com o banco de dados, onde é possível visualizar de maneira simples a união dessas tecnologias, o que diferencia de outras ferramentas.
Este projeto tem como objetivo demonstrar a praticidade e agilidade que as ferramentas descritas acima podem trazer durante o desenvolvimento de uma aplicação e os conceitos de como utilizá-las, revelando o quão são poderosas.
II. CONCEITOS
Nesta seção serão abordados quatro conceitos teóricos, que são de grande importância para compreensão do trabalho. São eles: a importância da linguagem de programação Java, mapeamento objeto-relacional (ORM), framework Hibernate e framework JPA.
A. A importância da linguagem de programação Java Java teve início em 1991, com um projeto titulado de “Projeto Green”, que tinha como objetivo a criação de tecnologias de software para empresas que trabalhavam com equipamentos eletrônicos de consumo, com a ideia principal de comunicação entre eles [3].
A programação orienta a objetos é uma das vantagens do Java, que é amplamente utilizada na indústria de desenvolvimento de software, visto que ele também é gratuito. Além disso, ele pode ser desenvolvido tanto para desktop quanto para web, o qual, torna ainda mais o mercado aquecido. E constantemente são lançados e atualizados diversos frameworks.
B. Mapeamento objeto-relacional (ORM)
O mapeamento objeto-relacional (ORM) é uma técnica que permite a abstração entre o modelo relacional (banco de dados) e o modelo de objetos (classes da aplicação), minimizando as diferenças entre eles e melhorando a produtividade, diminuindo o trabalho do desenvolvedor, já que não são feitos códigos na linguagem do banco de dados para o acesso aos mesmos [4]. Códigos feitos a mão demandam tempo e podem gerar problemas na mudança de bancos de dados e falta de compatibilidade dependendo do paradigma utilizado na aplicação [2].
C. Framework Hibernate
O Hibernate é um framework para mapeamento objeto-relacional para ambientes Java, porém pode ser encontrado na plataforma .Net com o nome NHibernate [5]. É um software livre de código aberto, distribuído com a licença LGPL, e sua versão atual, da elaboração do artigo, é a 5.2.0 [6].
Seu objetivo é diminuir não só o tempo de desenvolvimento, mas também prover facilidades em consultas e retorno de dados, além de mapear as classes Java para tabelas do banco de dados e tipos de dados Java para tipos de dados SQL [7].
O Hibernate gera os códigos SQL necessários para operações realizadas no banco de dados, mantendo a aplicação portável para outros bancos, apesar de causar um leve aumento no tempo de execução.
D. Framework JPA
O Java Persistence API (JPA) fornece um modelo de mapeamento objeto-relacional de persistência de dados baseado em POJOs (Plain Old Java Objects) [8]. É uma especificação para acesso à banco de dados, que funciona com outros frameworks ORM.
O JPA dita uma interface de como o gerenciamento deve ser feito entre o banco de dados e a aplicação, portanto, necessitando de um framework para fazer a implementação, como o Hibernate [9].
III. NORMAS ESPECIAIS
Fig. 1. Interface MySQL Workbench.
Clique com o botão direito em cima de um dos schemas já criados por padrão pelo MySQL e selecione “Create Schema”. Nomeie seu banco de dados e prossiga em criar as tabelas desejadas. Segue um exemplo de criação de tabela por script e um exemplo via interface gráfica:
Fig. 2. Criação de tabela por script.
Fig. 3. Criando a tabela no MySQL Workbench.
Fig. 4. Criando a tabela através da interface. B. Criando as classes Java modelo a partir das tabelas
Uma vez criada a tabela, podemos agora criar as entidades no eclipse a partir das tabelas criadas no MySQL.
Fig. 5. Criando os Models a partir das tabelas. Adicione uma nova conexão MySQL
Fig. 6. Adicionando conexão MySQL.
Fig. 7. Adicionando conexão MySQL.
Selecione o driver MySQL JDBC e configure de acordo com o seu banco de dados, em seguida teste a sua conexão com o botão “Test Connection”.
Fig. 8. Adicionando conexão MySQL
Agora que a conexão está criada selecione o banco e as tabelas que deseja gerar.
Fig. 9. Selecione as tabelas que gerarão os models. A classe modelo da sua tabela foi criada. Agora copie as classes para o seu projeto principal.
Fig. 10. Classe modelo. C. Utilizando o Hibernate
Antes de utilizarmos o Hibernate é necessário baixar as libs no site www.hibernate.org e incluí-las no projeto.
Fig. 11. Libraries Hibernate na pasta lib.
Devemos agora configurar o arquivo properties do Hibernate com a sua conexão do banco.
Fig. 12. Arquivo properties do hibernate.
Fig. 14. Classe HibernateFactory.
Agora na classe DAO iremos criar as chamadas com o Hibernate. É importante que façamos todos os imports necessários:
Fig. 15. Imports Hibernate.
E finalmente, utilizamos o Hibernate para o acesso de dados de uma forma simples, através de sessões que permitem commit e rollback.
Fig. 16. Chamadas Hibernate.
IV. CONCLUSÕES
Quando se está trabalhando em uma linguagem de orientação a objetos, o programador tem um foco maior em outras partes da aplicação.
REFERÊNCIAS
[1] GONÇALVES, Otávio. Por que java?. Disponível em: <http://www.devmedia.com.br/por-que-java/20384>. Acesso em: 19 junho 2016.
[2] CAELUM. Hibernate: Java para Desenvolvimento Web. Disponível em: <https://www.caelum.com.br/apostila-java-web/>. Acesso em: 20 junho 2016.
[3] VINÍCIUS, Thiago. Java: história e principais
conceitos. Disponível em: <
http://www.devmedia.com.br/java-historia-e-principais-conceitos/25178>. Acesso em: 22 junho 2016.
[4] MAYUMI, Priscilla. ORM – Object Relational Mapping – Revista Easy .Net Magazine 28. Disponível em: <http://www.devmedia.com.br/orm-object-relational-mapping-revista-easy-net-magazine-28/27158>. Acesso em: 20 junho 2016.
[5] SILVA, Osmar J. Hibernate: O que é, como baixar,
instalar, configurar e testar. Disponível em:
<http://www.arquivodecodigos.net/principal/diretorios/hi bernate/artigos_tutoriais/hibernate_o_que_e_como_baix ar_instalar_configurar_e_testar.php>. Acesso em: 20 junho 2016.
[6] HIBERNATE. Hibernate ORM: Idiomatic persistence for Java and relational databases. Disponível em: <http://hibernate.org/orm/>. Acesso em: 20 junho 2016. [7] PRIMO, Izalmo. Hibernate: Artigo Java Magazine 73 –
Desenvolvendo com Hibernate. Disponível em:
<http://www.devmedia.com.br/artigo-java-magazine-73-desenvolvendo-com-hibernate/14756>. Acesso em: 20 junho 2016.
[8] MEDEIROS, Higor. Introdução à JPA – Java
Persistence API. Disponível em:
<http://www.devmedia.com.br/introducao-a-jpa-java-persistence-api/28173>Acesso em: 20 junho 2016. [9] RODRIGUES, Fernando. O que é JPA (Java Persistence
API). Disponível em: < http://fernandorodrigues.pro/o-que-e-jpa-java-persistence-api/>. Acesso em: 20 junho 2016.