domingo, 24 de julho de 2011

Hibernate




Baixe o Hibernate na página oficial: http://www.hibernate.org/


Criado por desenvolvedores Java, liderado por Gavin King, posteriormente Jboss(empresa comprada pela Red Hat), o Hibernate é uma fonte aberta multiplataforma de mapeamento relacional para classes Java em tabelas de BD(e de tipos de dados Java para tipos de dados SQL), e também, fornece dados de consulta e instalações de recuperação e pode reduzir significativamente o tempo de desenvolvimento gasto com dados de outra forma de movimentação manual de cargas em SQL e JDBC. Permite desenvolver classes persistentes facilitando o mapeamento dos atributos entre uma base tradicional de dados relacionais e o modelo objeto de uma aplicação mediante o uso de arquivos XML para estabelecer a relação.
Inclui associação, herança, polimorfismo, composição e as Java Collections Framework.
O Hibernate objetiva aliviar o trabalho do desenvolvedor em 95 por cento dos dados comuns de persistência e tarefas de programação relacionadas.

Sua Versão atual é 4.x, que incorporou características como a nova arquitetura Interceptor/Callback, filtros definidos pelo usuário e anotações JDK 5.0 (Metadados do Java), que substitui os arquivos XML. Hibernate 3 também se aproxima das especificações EJB 3.0 e atua como a espinha dorsal das implementações EJB 3.0 em JBoss.

Características

- Transforma classes em Java para tabelas de dados (e os tipos de dados Java para os da SQL).
- Gera as chamadas SQL e libera o desenvolvedor do trabalho manual da conversão dos dados resultante, mantendo o programa portável para quaisquer banco de dados SQL, porém causando pequeno aumento no tempo de execução.
- Persistência transparente sem processamento código de byte
- Geração automática de chaves primárias
- Suporte de chaves compostas
- Caches de níveis de sessão e nível opcional
- Alto desempenho
Entre outros...

Objetiva diminuir a complexidade entre programas Java, baseado em OO conetado a um BD do modelo relacional (presente na maioria dos SGDBs). Em especial, no desenvolvimento de consultas e atualização dos dados.

Gerenciamento de Transações e Tecnologia a acesso a base de dados são de responsabilidade de outros elementos na infra do programa. Apesar de existirem API no Hibernate para possuir operações de controle transacional, ele simplesmente delegará estas funções para a infraestrutura na qual foi instalada.

No caso de aplicações construídas para serem executadas em servidores de aplicação, o gerenciamento das transações é realizado segundo o padrão JTA. Já nas aplicações standalone, o programa delega o tratamento transacional ao driver JDBC.
Hibernate pode ser utilizado em aplicações Java standalone ou em aplicações Java EE, utilizando servlet ou sessões Enterprise Java Beans.

Hibernate arquitetura tem três componentes principais:

Gerenciamento de conexão: Fornece uma gestão eficiente das conexões de BD.
Gerenciamento de transações: Oferece a possibilidade de o usuário executar mais de um banco de dados de declarações de cada vez.
Mapeamento Objeto Relacional: Técnica de representação de dados a partir de um dodelo de objeto para um modelo relacional. Usado para selecionar, inserir e excluir os registros que formam a tabela subjacente. Quando passamos um objeto para um método Session.save(), Hibernate lê o estado das variáveis desse objeto e executa a consulta necessária.

HQL

A HQL (Hibernate Query Language) é um dialeto SQL para o Hibernate. Ela é uma poderosa linguagem de consulta que se parece muito com a SQL, mas a HQL é totalmente orientada a objeto, incluindo os paradigmas de herança, polimorfismo e encapsulamento.
No Hibernate, você pode escolher tanto usar a SQL quanto a HQL. Escolhendo a HQL, você poderá executar os pedidos SQL sobre as classes de persistência do Java ao invés de tabelas no banco de dados, aumentando, assim, a distância entre o desenvolvimento da regras de negócio e o banco de dados.

Link para um exemplo de aplicação:
http://www.dsc.ufcg.edu.br/~jacques/cursos/daca/html/hibernate/hibernate.htm

Fontes diversas: Wikipédia, GUJ, blogs entre outros.

Nenhum comentário:

Postar um comentário