HIBERNATE EM APLICAÇÃO JAVA WEB
Raul Victtor Barbosa Claudino¹, Ricardo Ribeiro Rufino¹
¹Universidade Paranaense (Unipar)
Paranavaí – PR – Brasil
[email protected], [email protected]
Resumo: Este trabalho visa mostrar o conceito e a estrutura usada pelo
framework Hibernate, com o objetivo de citar algumas de suas funcionalidades e
especificações, além de mencionar algumas vantagens e desvantagens, baseandose em artigos, sites e documentos especializados no assunto. O framework
pesquisado se mostrou um excelente auxilio no desenvolvimento de aplicações.
1. Introdução
Bauer e King [Bauer; King, 2005] explicam que o Hibernate é um framework de
persistência que tem como função armazenar objetos Java em bases de dados relacionais
ou fornecer uma visão orientada a objetos de dados relacionais existentes. Isso só é
possível pela utilização de arquivos de configuração XML que a framework usa para
mapear os dados contidos em uma base de dados relacional, para os atributos de uma
classe Java.
O Hibernate é um framework de mapeamento objeto relacional para aplicações
Java, ou seja, é uma ferramenta para mapear classes Java em tabelas do banco de dados e
vice-versa. É bastante poderoso e dá suporte ao mapeamento de associações entre objetos,
herança, polimorfismo, composição e coleções [Magalhães; Da Silva, 2013].
O Hibernate não apresenta apenas a função de realizar o mapeamento objeto
relacional, mais também disponibiliza um poderoso mecanismo de consulta de dados,
permitindo uma redução considerável no tempo de desenvolvimento da aplicação.
2. Metodologia
Este trabalho foi realizado a partir da leitura e revisão de artigos científicos, sites da
internet especializados no tema, trabalhos de conclusão de curso e livros que juntos a uma
analise apurada sobre o tema, formaram um material elaborado que auxilia no
desenvolvimento, e em um melhor entendimento do assunto escolhido.
3. Arquitetura
O Hibernate apresenta uma arquitetura formada basicamente por um conjunto de
interfaces. A Figura 1 tem como função apresentar as interfaces mais importantes nas
camadas de negócio e persistência. A camada de negócio aparece acima da camada de
persistência por atuar como cliente da mesma. É importante informar que algumas
aplicações podem não ter a separação clara entre as camadas de negócio e de persistência.
De acordo com a Figura 1, as interfaces são classificadas como:
• Interfaces responsáveis por operações de criação, deleção, consulta e atualização no
banco de dados: Session, Transaction e Query;
• Interface utilizada pela aplicação para configurar o Hibernate: Configuration;
• Interfaces responsáveis por realizar a interação entre os eventos do Hibernate e a
aplicação: Interceptor, Lifecycle e Validatable.
• Interfaces que permitem a extensão das funcionalidades de mapeamento do Hibernate:
UserType, CompositeUserType, IdentifierGenerator.
O Hibernate também interage com APIs já existentes do Java: JTA, JNDI e JDBC
[Fernandes; Lima, 2007].
Figura 1: Arquitetura do Hibernate [Fernandes; Lima, 2007].
De todas as interfaces apresentadas na Figura 1, as principais são: Session, SessionFactory,
Transaction, Query, Configuration.
3.1 Session
O objeto Session tem a função de facilitar a comunicação da aplicação com a persistência,
através de uma conexão JDBC. É um objeto leve de ser criado, não deve ter um tempo de
vida que se estenda por toda a aplicação, por não se tratar de um threadsafe. Um Session
possui um cache local de objetos recuperados na sessão. Com ele é possível criar, remover,
atualizar e recuperar objetos persistentes [Fernandes; Lima, 2007].
3.2 SessionFactory
O SessionFactory é aquele que mantém o mapeamento objeto relacional na memória.
Permite a criação de objetos Session dos quais os dados são acessados. Um objeto
SessionFactory é threadsafe, no entanto deve-se existir apenas uma única instância dele na
aplicação, por ser muito pesado, não permitindo ser criado várias vezes [Fernandes; Lima,
2007].
3.3 Configuration
O Configuration é utilizado para realizar as configurações iniciais do Hibernate. Com ele,
define-se, por exemplo: o driver do banco de dados a ser utilizado, o dialeto, o usuário e
senha do banco, entre outras. É a partir de uma instância desse objeto que se indica como
os mapeamentos entre classes e tabelas de banco de dados devem ser feitos [Fernandes;
Lima, 2007].
3.4 Transaction
A interface Transaction é utilizada para representar uma unidade indivisível de uma
operação de manipulação de dados. O uso dessa interface em aplicações que usam
Hibernate é opcional. Essa interface abstrai a aplicação dos detalhes das transações JDBC,
JTA ou CORBA [Fernandes; Lima, 2007].
3.5 Interfaces Criteria e Query
As interfaces Criteria e Query são utilizadas para realizar consultas ao banco de dados
[Fernandes; Lima, 2007].
4. Classes Persistentes
As classes persistentes de uma aplicação são aquelas que programam as entidades de
domínio de negócio. O Hibernate trabalha associando cada tabela do banco de dados a um
POJO (Plain Old Java Object). POJO´s são objetos Java que seguem a estrutura de
JavaBeans (construtor padrão sem argumentos, e métodos getters e setters para seus
atributos) [Fernandes; Lima, 2007].
5.Vantagens e Desvantagens
Serão apresentadas algumas das vantagens e desvantagens na tabela 1, da utilização do
Hibernate no desenvolvimento da aplicação:
Tabela 1. Vantagens e Desvantagens do Hibernate.
VANTAGENS
DESVANTAGENS
Diminui os códigos de persistência.
Na criação das Queries complexas, pois precisa
entender todos os critérios.
Abstrai o banco de dados, através do
mapeamento realizado pelo hibernate.
Precisa colocar varias bibliotecas na aplicação,
sendo que já uma vez utilizada, precisa se
parametrizar novamente.
Velocidade no desenvolvimento da aplicação.
Melhora o tratamento de gerenciamento de
recursos.
6. Persistência com Banco de Dados
O procedimento de armazenamento, manutenção, configuração de algum objeto que
interage com o banco de dados de maneira transparente é denominada de persistência, ou
seja, a persistência é uma funcionalidade do hibernate, que tem a função de interagir com
uma biblioteca de dados, integrada em vários gerenciadores do banco, tais como o Oracle,
PostgreSQL e o MySQL, além de disponibilizar diversos assistentes que facilitam o
trabalho do desenvolvedor [Magalhães; Da Silva, 2013].
7. S.A.V.A.
O sistema de gerenciamento para academias (SAVA) tem como função gerenciar todos os
cadastros e movimentos realizados pela empresa, que antes era realizado pelo proprietário
que armazenava em cadernos de anotações e fichas as informações da empresa.
O software a ser desenvolvido propõe substituir esse método e tem como objetivo
controlar o fluxo de clientes, gerenciar contas a pagar e a receber, controle de
mensalidades, gerar relatórios detalhados destas atividades, alem de diminuir erros e
organizar as informações de maneira segura e de fácil acesso.
8. Conclusão
Com a elaboração deste artigo conclui que com os avanços tecnológicos a framework
hibernate é um grande facilitador no desenvolvimento de software, ao observar as
vantagens oferecidas referentes à portabilidade das tabelas com o banco de dados.
Constata-se então que o hibernate proporciona a aplicação realizar o mapeamento
com rapidez, ganhando tempo no desenvolvimento e na organização das tabelas, gerando
um alto desempenho do banco na aplicação. Todas essas funcionalidades juntamente com
uma arquitetura bem elaborada, e um excelente processo de persistência com o banco de
dados, fez desse framework essencial no desenvolvimento do SAVA.
9. Referencias
Magalhães, Da Silva. (2013) Utilização do Framework Hibernate em aplicação JAVA
WEB. Disponível em:
<http://web.unipar.br/~seinpar/2013/artigos/Carlos%20Filipe%20Magalhaes.pdf.pdf>
acessado em: 23/07/2015.
Soares Filho. (2006) UTILIZAÇÃO DO FRAMEWORK HIBERNATE PARA
MAPEAMENTO OBJETO/RELACIONAL NA CONSTRUÇÃO DE UM SISTEMA
DE INFORMAÇÃO. Disponível em:
<http://dsc.inf.furb.br/arquivos/tccs/monografias/2006-1odilonherculanosoaresfilhovf.pdf>
acessado em: 23/07/2015.
Fernandes, Lima. (2007) Hibernate com Anotações. Disponível em:
<http://www.futurepages.org/wiki/lib/exe/fetch.php?media=quickstart:hibernate_anotacoes
.pdf> acessado em: 23/07/2015.
BAUER, KING. (2005) Hibernate in action. Disponível em:
<http://www.cpe.ku.ac.th/~plw/oop/e_book/hibernate_in_action.pdf> acessado em:
20/06/2015.
Download

HIBERNATE EM APLICAÇÃO JAVA WEB