Upload
vocong
View
216
Download
0
Embed Size (px)
Citation preview
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 servletou 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 entitybeans 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.
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.
Mapeamento2. 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 utilizaressa tecnologia em um projeto, deve ser levado em conta aonde está a maiorparte 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_forprint.asp?comp=14756