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