CloudWare

cafelog-coffee

Introdução ao Hibernate

Quarta, 09 Novembro 2011

hibernate

O Hibernate é um Java FrameWork responsável por realizar a persistência dos dados no Banco de Dados utilizando o Mapeamento Objeto-Relacional. Ele funciona como um MiddleWare, uma camada que está entre a aplicação e o Banco de Dados, servindo como um intermediário e diminuindo a complexidade da programação, reduzindo substancialmente o tempo de desenvolvimento.

Ele facilita 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 esta relação.

Sua principal característica é a transformação das classes (POJO) e tipos de dados do Java para tabelas e tipos de dados SQL. O Hibernate gera as chamadas SQL (Select, Insert, Join, Triggers...) e libera o desenvolvedor do trabalho manual da conversão dos dados resultante, mantendo o programa portável para qualquer banco de dados SQL, porém causando um pequeno aumento no tempo de execução.

hibernate1

Demonstração do papel do Hibernate em uma aplicação

MAPEAMENTO OBJETO-RELACIONAL

O Object-Relational Mapping (ORM), em português, Mapeamento Objeto-Relacional, é uma técnica de desenvolvimento utilizada para facilitar a comunicação da programação orientada aos objetos com os bancos de dados relacionais. As tabelas do banco de dados são representadas através de classes e os registros de cada tabela são representados como instâncias das classes.

Com esta técnica aliada ao Hibernate, o programador não precisa se preocupar com os comandos em linguagem SQL, apenas irá utilizar uma interface de programação simples que faz todo o trabalho de persistência.

O Hibernate utiliza duas técnicas de mapeamento: arquivos XML separados da aplicação e Annotations (Anotações) que estão presentes no próprio código. Iremos abordar apenas o uso de arquivos XML.

POJO

POJO significa Plain Old Java Objects, a tradução mais próxima para o português seria: O Simples e Velho Objeto Java. Seu objetivo é criar classes o mais simples possível, seguindo um padrão já definido, que tornam suas instâncias "genéricas" para todo o programa e diversos FrameWorks que se beneficiam desta técnica.

Uma classe POJO segue definições rígidas de estrutura:

  • Construtor sem argumentos;
  • Atributos declarados como private;
  • Métodos getters e setters, para cada atributo, declarados como public;
  • Nada mais que isso.

Abaixo segue um exemplo de uma classe POJO:

public class Usuario {
     private int ID;
     private String nome;
     private String email;
     // CONSTRUTOR
     public Usuario() {
 
     }
     // GETTERS
     public int getID() {
     return ID;
     }
     public String getNome() {
     return nome;
     }
     public String getEmail() {
   return email;
     }
     // SETTERS
     public void setID(int ID) {
   this.ID = ID;
     }
     public void setNome(String nome) {
   this.nome = nome;
     }
     public void setEmail(String email) {
   this.email = email;
     }
}

No Hibernate o POJO é utilizado para mapear os campos do Banco de Dados na aplicação, permitindo que a geração do código SQL seja feita de forma automática, em tempo de execução.

Uma regra que deve ser seguida rigorosamente é criar a classe POJO com o mesmo nome da tabela a qual está sendo associado e os atributos com o mesmo nome e tipo dos campos. Isto não é obrigatório, mais por questão de organização e controle do código esta regra é altamente recomendada.

CONFIGURAÇÃO

Para que o Hibernate funcione, além de importar as APIs necessárias para seu projeto, é preciso configurá-lo corretamente. Ele pode ser configurado de diversas formas:

  • Utilizando uma instância de org.hibernate.cfg.Configuration;
  • Através do arquivo hibernate.properties;
  • Através do arquivo hibernate.cfg.xml.

Há um grande número de propriedades que controlam o comportamento do Hibernate em tempo de execução, sendo possível configurá-las em qualquer uma das técnicas citadas acima.

Também é preciso mapear as classes POJO contendo a estrutura das tabelas, que por sua vez pode ser feito de duas maneiras:

  • Com o uso de @Annotations;
  • Com o uso do hbm.xml.

Os Annotations nos permite fazer o mapeamento diretamente no POJO utilizando o @ antes da declaração da classe, métodos e atributos. Já o hbm.xml (Hibernate Mapping) é um arquivo separado que possui a localização do POJO.

Android

Java

Hibernate

Joomla!

CSS3

HTML5

Saia na Frente

html5 css3

Sobre Mim

sobre-foto-2Adriel Café é Web Master e Desenvolvedor Java. Ele incentiva o uso/estudo de Web Standards, Java e Android.

Saiba Mais

Encontre-me

facebook linkedin