iSOBRAEP Template

Propaganda
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 - UNIUBE
Graduação em Engenharia de Computação
Uberlândia – MG, Brasil
[email protected] , [email protected], [email protected], [email protected]
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
frameworks.
–
praticidade,
Hibernate,
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.
JPA,
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
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].
1
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.
Fig. 1. Interface MySQL Workbench.
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].
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.
C. Framework Hibernate
O Hibernate é um framework para mapeamento objetorelacional 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.
Fig. 3. Criando a tabela no MySQL Workbench.
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].
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.
Dentro do Eclipse clique em New > JPA Project. Após
criado o projeto clique com o botão direito no projeto e
escolha JPA Tools > Generate Entities from Tables
III. NORMAS ESPECIAIS
A. JPA
Primeiramente devemos criar as o banco de dados e as
tabelas no MySQL. Isto pode ser feito tanto através de script
ou pela interface no MySQL Workbench.
Crie uma conexão local e conecte-se a esta conexão.
2
Fig. 5. Criando os Models a partir das tabelas.
Adicione uma nova conexão MySQL
Fig. 8. Adicionando conexão MySQL
Fig. 6. 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. 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. 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.
3
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. 11. Libraries Hibernate na pasta lib.
Devemos agora configurar o arquivo properties do
Hibernate com a sua conexão do banco.
Fig. 16. Chamadas Hibernate.
Fig. 12. Arquivo properties do hibernate.
IV. CONCLUSÕES
Portanto, o modo de pensar torna-se mais objetivo,
conduzindo o programador a focar mais nos objetos e menos
nos registros, que está relacionado ao banco de dados.
Com esse cenário, a agilidade tem um aumento
expressivo, pois não são necessários códigos SQL
implantados diretamente no código fonte da aplicação, uma
vez que, os frameworks Hibernate e JPA já se
responsabilizam por executar as tarefas de persistência no
banco, cabendo somente o desenvolvedor introduzir os
códigos de forma correta.
Fig. 13. Configuração de acordo com o seu banco.
Devemos criar a classe HibernateFactory que será
responsável por criar a sessão de conexão com o banco
quando formos utiliza-lo.
4
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/apostilajava-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-principaisconceitos/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-relationalmapping-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-73desenvolvendo-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-javapersistence-api/28173>Acesso em: 20 junho 2016.
[9] RODRIGUES, Fernando. O que é JPA (Java Persistence
API). Disponível em: < http://fernandorodrigues.pro/oque-e-jpa-java-persistence-api/>. Acesso em: 20 junho
2016.
5
Download