Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Hibernate

Fazer download em pdf ou txt
Fazer download em pdf ou txt
Você está na página 1de 17

Carlos S.

Rodrigues
Leonardo Lino Vieira
Eric Felipe Barboza
Antonio Vasconcellos
Introdução
 Necessidade de diminuir a complexidade na interação
código-banco de dados para o programador,além de
diminuir o tempo de programação.

 Criou-se Hibernate. Um framework para mapeamento


objeto-relacional escrito em linguagem Java,idealizado e
desenvolvido por Gavin King.

 Disponível também para .Net com o nome de


NHibernate.*
Características
 O objetivo do Hibernate é diminuir a complexidade entre os programas
Java, baseado no modelo orientado a objeto, que precisam trabalhar com
um banco de dados do modelo relacional . Em especial, no
desenvolvimento de consultas e atualizações dos dados.(*)

 Sua principal característica é a transformação das classes em Java para


tabelas de dados (e dos tipos de dados Java para os da SQL).

 Na versão 3.x o Hibernate implementa a especificação JPA (Java


Persistence API) através do conceito de anotações (implementada a partir
do JDK5), o que facilita ainda mais o mapeamento objeto-relacional, que
pode agora ser feito diretamente na classe, substituindo o uso dos arquivos
XML.

 Gerenciamento de transações não é responsabilidade do Hibernate e sim


de outros elementos na infraestrutura do programa. (*)
Características
 Hibernate pode ser utilizado em aplicações Java
standalone ou em aplicações Java EE, utilizando servlet
ou sessões EJB beans.

 Hibernate é um software livre de código aberto


distribuído com a licença LGPL (GNU Lesser General
Public License).
Histórico
 O framework Hibernate foi desenvolvido por uma equipe de
programadores Java liderada por Gavin King e teve sua primeira versão
divulgada em 2004. Segundo King, um dos objetivos ao criar o projeto era
resolver seus problemas referentes à persistência causados pelo EJB 2.0, o
qual considerava muito complexo.

“Eu queria resolver um problema interessante, um problema que me


afetava pessoalmente. Eu estava frustrado com o trabalho com entity
beans no estilo EJB 2 e as frágeis camadas de persistência escritas à mão. “
Gavin King, criador do Hibernate em entrevista.

 Com um escopo muito vasto, o projeto tornou-se inviável de ser mantido


apenas nos tempos livres, assim King aceitou entrar para o JBoss Group,
passando a ser remunerado para continuar a desenvolver o projeto, o que
lhe permitiu dedicação completa ao Hibernate.
Histórico
 Recentemente foi lançada a mais nova versao -> Hibernate Core
3.6.0.Final

 Atualmente o Hibernate é mantido pelo JBoss Group o qual possui


duas equipes:
1) Equipe de desenvolvimento liderado pelo próprio Gavin King .
2)Equipe dedicada para auxiliar os usuários em treinamento,
suporte e consultoria.

-> Recentemente a empresa Red Hat comprou o JBoss Group.


Estrutura / Implementações JPA
Vantagens
 Open Source(licensa LGPL);

 Transformação das classes em Java para tabelas de


dados (e dos tipos de dados Java para os da SQL);

 Livra o programador da conversão manual do resultset,


sendo altamente portável;
Vantagens
 Escrever (bem) menos código repetitivo, sem perder
flexibilidade;

 Acesso a recursos nativos/específicos dos bancos de


dados;

 Menos preocupação da arquitetura de persistência;


Desvantagens
 Para executar consultas mais complexas, geralmente é
necessário algum tempo de experiência;

 Perda de desempenho;
HQL – Hibernate Query Language
 Dialeto de SQL.
 Orientada a objetos.

 Exemplos:
from Foo foo where foo.bar.baz.customer.address.city is
not null

from Cat cat, Cat rival where cat.mate = rival.mate


Mapeamento Objeto-Relacional

 Mapeamento relacional X objeto-relacional.

 Bancos de dados orientados a objetos (ODBMS).


Configuração
 O hibernate pode ser baixado gratuitamente no site do
próprio projeto: http://www.hibernate.org/
 O projeto principal e base de nossa apresentação é o
projeto Hibernate Core.
 A configuração do hibernate pode ser realizade de duas
formas:
1. Hibernate.properties
2. Hibernate.cfg.xml
Mapeamento
 O mapeamento pode ser feito de duas formas:
1. Anotações:
 O mapeamento via anotações consiste em adicionar anotações
ao código de classes a serem mapeadas.
 Anotações básicas:
 @Entity = Classe que o hibernate tornará persistível no BD.
 @Id = Informa que o atributo id será a chave primária(Toda
entidade necessita ter uma chave primária).
 @GeneratedValue = Esta chave será populado no BD, ou seja,
no caso de um BD MYSQL, será usado um auto increment.
 Existem muitas outras anotações além das acima citadas.
Mapeamento
2. hbm.xml:
 Quando o mapeamento é feito via xml, o indicado é que se crie
um .hbm.xml para cada classe.
 Mapeamento via xml é uma abordagem mais antiga.

 Evita poluir classes com anotações.

 Ferramentas como androMDA ajudam na geração desse xml.


Considerações finais

Como já mostrado anteriormente, o Hibernate traz muitas facilidades e


agilidade para os programadores. Porém antes de tomar a decisão de utilizar
essa tecnologia em um projeto, deve ser levado em conta aonde está a maior
parte da lógica da aplicação. Projetos que implementam a maior parte de sua
lógica nos bancos de dados e não contam com um consistente modelo de
objetos, não terão muito benefício com o uso desse Framework.
Bibliografia
 www.wikipedia.org
 http://www.hibernate.org/
 http://www.devmedia.com.br/articles/viewcomp_forp
rint.asp?comp=14756

Você também pode gostar