Luis Gustavo Zandarim Soares

Propaganda
Uma Abordagem sobre Mapeamento Objeto Relacional
com Hibernate
Luis Gustavo Zandarim Soares1, Késsia Rita da Costa Marchi1
1
Universidade Paranaense (Unipar)
Paraná – PR – Brasil
[email protected], [email protected]
Resumo. Este artigo constitui em uma descrição sobre o que é e como
funciona o Mapeamento objeto-relacional (ORM), juntamente da ferramenta
de persistência Hibernate e apresentando informações básicas sobre o mesmo.
O artigo também abrangerá o estudo de caso e como ele funciona para o
mapeamento objeto-relacional.
1. Introdução
O Hibernate consiste em um poderoso framework utilizado para realizar o ORM
(Mapeamento Objeto-Relacional), e como a maior parte de um uma aplicação envolve
na criação e manutenção de camadas de persistência, se o modelo de banco de dados
sofrer alterações, pode ser muito oneroso realizar as alterações para todo o resto da
aplicação, fazendo com que o Hibernate elime esta lacuna [KRAEMER, VOGT 2004].
Com o grande crescimento das demandas de sistemas e mão de obra no mercado
de trabalho, o mapeamento objeto-relacional surgiu com intuito de auxiliar os
profissionais da área de TI a agilizar seus trabalhos, pois utilizando a técnica de ORM, o
programador não necessita preocupar-se com os comandos em SQL (Structured Query
Language) para a criação e manipulação do banco de dados, o mesmo é realizado pelo
ORM, poupando um grande trabalho e tempo para os programadores e as empresas.
O objetivo deste trabalho é explicar e mostrar o que é e como funciona a
modelagem objeto-relacional utilizando o framework Hibernate para uma melhor
persistência nos dados, com alto desempenho e fácil metodo de manuseio, aboradará
também sobre o estudo de caso, sobre o que ele é, como funciona, e qual sua
importância para com o mapeamento objeto-relacional.
2. Hibernate
"O Hibernate é um framework para mapeamento objeto-relacional para linguagem Java.
Na prática, ele é um conjunto de classes, interfaces e arquivos de configuração préacabados que permitem a criação de uma camada de serviço capaz de abstrair a
existência do banco de dados para sistemas Java" [MRACK 2006].
Lançado em 2001, o Hibernate foi criado por desenvolvedores Java, juntamente
com a liderança de Gavin King, fundador do projeto Hibernate. Após sua criação, a
empresa JBoss Inc, contratou os principais desenvolvedores do framework para realizar
o suporte do mesmo.
A principal proposta do Hibernate é prover aos desenvolvedores uma maneira de
realizar o mapeamento de uma forma transparente, isto é, através da criação de classes,
como se não houvesse persistência relacional [GONÇALVES 2008].
Como o framework Hibernate utiliza sua própria linguagem SQL, o HQL
(Hibernate Query Language), o programador não necessita de escrever muitos códigos
SQL para acesso ao banco de dados, pois o HQL possui um considerável aumento na
velocidade de desenvolvimento, podendo mudar a qualquer momento o SGDB (Sistema
de Gerenciamento de Banco de Dados) utilizado [FRAGOSO 2008].
Segundo LUCKOW e MELO (2010), vale a pena destacar que o framework
Hibernate possui três frentes de software, elas são:

Hibernate Core: conhecido como Hibernate 03, é a base para todo o conjuntos
de persistência que o Hibernate oferece, contendo um API (Application
Programming Interface) nativa e matadados de mapeamento guardados em
arquivos XML (Extensible Markup Language). Possui linguagem própria de
SQL, o HQL e também possui interfaces para realização de consultas.

Hibernate Annotations: a nova maneira de realizar o mapeamento de
objeto/relacional utilizando annotations, um tipo de tags especiais estilo
JavaDoc, trazendo como vantagem a grande redução de linhas de códigos para
realizar esse processo de mapeamento comparado o XML.

Hibernate EntityManager: é a camada que atende aos conceitos de
programação de interfaces e funcionalidades de consultas, fazendo com que a
interface leia o metadado ORM de uma entidade e realiza operações de
persistência.
A figura 01, descreve simplificadamente como funciona a arquitetura do
Hibernate e demonstra duas técnicas de mapeamento, XML e annotations.
Figura 01. Como funciona o Hibernate [SMOLENAARS, 2005]
3. Mapeamento Objeto-Relacional utilizando o Hibernate
O mapeamento objeto-relacional (ORM), é a base teórica sobre a qual podemos mapear
objetos em tabelas de bancos de dados relacionais, visando reduzir a impedância
existente entre os dois paradigmas durante o desenvolvimento de software. Quando se
mapeia os dados do modelo relacional cria-se o efeito de que o banco de dados seja
orientado a objetos, de modo que o programador não precisa se preocupar com a
disposição dos dados nas tabelas e se focar na manipulação de objetos e nos problemas
de negócio (BAUER, KING 2007).
A figura 02, apresenta como funciona o mapeamento objeto-relacional, a tabela é
representada pela classe aluno, as colunas são os atributos da classe e a linhas da tabela
como instância da classe.
Figura 02. Exemplo de Mapeamento Objeto-Relacional [MISTRON, 2009]
4. Estudo de Caso
Para ser efetuada a conexão do Hibernate com o banco de dados, é necessario a
criação de uma Unidade de Persistência no projeto, a mesma solicita que seja informado
dados para que ela possa efetuar a conexão, dados como o provedor de persistência que
é o framework de persistência a ser utilizado e fonte de dados para que ele possa realizar
a conexão com o banco de dados.
Figura 03. Exemplo de conexão do Hibernate com o banco de dados.
As annotations, nova maneira de mapeamento objeto-relacional utiliza tags para
realizar o mapeamento, os simbolos no código que se iniciem com @ (arroba) é uma
annotation. As annotations auxiliam o Hibernate em como se deve criar os atributos na
tabela do banco de dados, como por exemplo o @Entity que declara uma entidade do
tipo relacional como uma tabela, porém ainda continua sendo uma classe Java, também
tempo o @id que define o identificador da tabela e annotations utilizada para realizar
associações, tais como @ManyToOne que define um atributo de muitos para um ou a
annotation @OneToMany que define um atributo de um para muitos.
Figura 03. Exemplo de classe de entidade e anotações
5. Metodologia
Este artigo foi desenvolvido utilizando de livros, artigos e páginas da web, pesquisando
a fundo e fazendo uma grande revisão do conteúdo pesquisado e logo após unificando as
revisões para a elaboração do projeto aqui escrito, Imagens do código fonte do trabalho
de conclusão de curso (Aplicação de Tecnologia Java na Produção de Software de
Varejo) foram utilizadas para ilustrar parte do artigo para mostrar claramente ao leitor
como funciona a utilização do Hibernate.
6. Conclusão
Com a grande competitividade no mercado de trabalho nos dias atuais, as empresas de
TI precisam que seus softwares sejam de maior qualidade em um menor espaço de
tempo e atendendo as necessidades de seus clientes, e é por isso que o uso de framework
é tão importante na elaboração de projetos hoje em dia.
Podemos então concluir que o framework Hibernate é uma ferramenta que
auxilia em muito na produção dos softwares, proporcianando um melhor desempenho e
qualidade, tornando também uma ótima opção de ferramenta pelo fato de que o
Hibernate não utiliza o uso do SQL para criação e manipulação do banco de dados,
trazendo uma linguagem própria e que agiliza na criação e manipulação do mesmo.
Devido sua grande evolução nos últimos anos, o Hibernate possui grandes
probabilidades de crescer muito e se tornar uma ferramenta ainda melhor para os
programadores e empresas que utilizam dessa tecnologia para auxiliar os mesmos na
produção de seus projetos.
Referências
Bauer, C.; King, G. (2007) "Java Persistence com Hibernate" 1° Edição, Editora Ciência
Moderna Ltda. Rio de Janeiro, Brasil.
FRAGOSO,
R,
R.,
(2008)
"O
que
é
Hibernate",
http://webcache.googleusercontent.com/search?q=cache:OBJuAYy_faMJ:www.dicas
l.com.br/arquivo/o_que_e_hibernate.php+hybernate+HQL+fragoso+2008&cd=1&hl
=pt-BR&ct=clnk&gl=br&source=www.google.com.br#.Ufb_hI2KLS4, acessado em
29 de Julho de 2013.
GONÇALVES, E. "Desenvolvendo Aplicações Web com JSP, Servlet,
JavaServerFaces, Hibernate, EJB 3 Persistence e Ajax", Rio de Janeiro: Ciência
Moderna Ltda., 2008.
Kraemer, Fabiano.; Vogt, Jerônimo Jardel. "Hibernate, um Robusto Framework de
Persistência Objeto Relacional", 18 f. Trabalho de Conclusão da Disciplina
Programação com Objetos Distribuídos (especialização) - Universidade Federal do
Rio Grande do Sul. Porto Alegre, 2004.
Luckow, D. H.; Melo, A. A. (2010) "Programação Java para Web", Editora Novatec.
São Paulo, Brasil.
MISTRON, J. "Hibernate: Framework de Mapeamento Objeto-Relacional", 53 f.
Monografia para obtenção de título de Técnólogo em Processamento de Dados.
Faculdade de Tecnologia de Taquaritinga. Taquaritinga. São Paulo, 2009.
MRACK, M. (2006) "Hibernate, Uma visão geral sobre o framework padrão de fato
para mapeamento objeto-relacional", http://www.slideshare.net/mmrack/workshophibernate-com-comentarios, acessado em 29 de Julho de 2013.
SMOLENARS, D. C. "Questionários Dinâmicos", 2005.
Download