Dev (Back & Front)ARTIGO

Hibernate não é bicho de 7 cabeças

Olá, pessoal! Vou dar início à uma série de artigos sobre o Hibernate. O motivo para isso é que eu sofri muito quando iniciei e não desejo isso para ninguém. Na verdade, eu ainda sofro quando preciso de algo mais avançado e bem especifico sobre um problema ou sistema legado no qual o Hibernate está presente. Nesses casos, eu recorro ao nosso amigo Google, consulto os amigos mais experientes etc.

Hoje veremos que usar Hibernate não é algo tão complicado. Para não ficar um artigo grande e cansativo, vou me limitar aos recursos mais simples do framework. No próximo, vamos nos envolvendo mais, certo?

Requisitos

  • Instalação Mysql 5 ou superior;
  • Instalação Java 5 ou superior;
  • Eclipse (qualquer versão).

Usarei o Hibernate 3.2.x, pois é o que tenho aqui nos meus projetos e não tive a necessidade de baixar a versão mais recente. Mas, para o que vamos fazer, não será necessária a última versão do framework.

Não usarei Annotations, pois na minha opinião todos que vão iniciar com Hibernate precisam conhecer os mapeamentos XML antes de ir para os Annotations. Os mapeamentos ainda são uma realidade em sistema legado – e vale lembrar que sistemas legados representam uma boa parcela de oportunidades no mercado Java que pedem o Hibernate como framework. Não se esqueça disso! Um dia você vai precisar entender o mapeamento que alguém fez há alguns anos…

Preparação do ambiente

Primeiro passo é baixar o hibernate core no site. Para esse exemplo, estou usando a versão Hibernate 3.2.1.GA e o Hibernate tools 3.24.ga. Agora descompacte os arquivos e abra o eclipse. Vá em Windows Preferences e digite “user” no campo de filter do eclipse:

Clique em New e em nome coloque Hibernate 3.2:

Agora vamos adicionar os .jars a essa biblioteca: clique em add external jars. Bem, eu poderia simplesmente dizer selecione todos os arquivos da pasta lib do hibernate, mas não é necessário, pois muitos arquivos não serão executados. Veja na imagem abaixo os arquivos que você precisa adicionar:

Mas como você vai saber quais são os arquivos? Simples! Tem um arquivo chamado _README.txt na pasta lib do hibernate e lá ele informa quais arquivos são requeridos. Se tiver dúvida, dê uma olhada lá. Um detalhe importante: o arquivo hibernate3.jar não fica em lib e também não consta na lista de arquivo required no _README.txt, mas você deve adicioná-lo. Essa informação você consegue na documentação do Hibernate.

Uma vez pronta a biblioteca o Hibernate, faça o mesmo para o Driver MySql. Crie uma nova biblioteca e adicione o .jar do banco de dados. Obtenha o Driver do site da MySQL. Em seguida, crie um Java Project no Eclipse e adicione as bibliotecas ao seu projeto. Clique com o botão direito e vá em propriedades ==> Java Build, na aba escola libraries e clique em add library ==> user library e marque as library que acabamos de criar.

Desenvolvimento

Chegamos na parte mais divertida: o “desenvolvimento”. Crie um package em src chamado br.com.bean. Depois, crie uma classe chamada de Message (sem o metodo main). Agora deixe a classe conforme abaixo:

package br.com.bean;

public class Message {
private String message;

public Message() {
// TODO Auto-generated constructor stub
}
public Message(String message) {
this.message = message;
}
public String getMessage() {
return message;
}

public void setMessage(String message) {
this.message = message;
}

}

Agora crie uma classe chamada TesteMessage (com o método main) e deixe conforme abaixo:

package br.com.bean;

import org.hibernate.Session;

import org.hibernate.SessionFactory;

import org.hibernate.cfg.Configuration;

public class PopulaMessage {

/**

* @param args

*/

public static void main(String[] args) {

SessionFactory factory = new Configuration().configure().buildSessionFactory();

Session session = factory.openSession();

session.beginTransaction();

Message m1 = new Message("lopes");

session.save(m1);//salvando o objetos persistenced

session.getTransaction().commit();

session.close();

System.out.println("Salvo com sucesso no banco de dados");

}

}

Vamos agora criar os arquivos de configuração do hibernate com o BD + o mapeamento com classe.

Configuração Hibernate

Abra a perspective Hibernate e depois vá em File ==> New ==> e escolha a opção conforme a imagem abaixo:

Clique em next e escolha a classe que será mapeada, ou seja, message. Depois clique em add class e em finish. Agora adicione os codes abaixo (tive que colocar no formato de imagem, para evitar que o código fosse quebrado pelo plugin):

Vamos criar o arquivo de configuração Hibernate com o banco de dados. Para isso, inicie o processo da mesma maneira que acabamos de fazer, porém escolha a opção conforme mostra a imagem a seguir:

Deixe o nome padrão sugerido e clique em next. Agora, escolha o projeto e o package – no meu caso, será MessageEx/src. Na próxima tela, precisamos configurar o BD. Então, deixe desta maneira:

Após ter configurado, clique em finish. Adicione o code a seguir no arquivo de configuração (hibernate.cfg.xml). É apenas o mapeamento da classe que representa nossa table no BD. Afinal de contas, o Hibernate precisa saber em que tabela ele deve obter/inserir informações, por isso usamos o mapeamento.

<mapping resource=”mapping.hbm.xml”/>

O nosso código ficará assim:

Testando

Para testar, é bem simples: vá na classe TesteMessage.java e clique em Run==> Java Application. Em seguida, verifique se a informação foi inserida no BD. Não se esqueça de dar um start no banco de dados. Caso contrário, receberá várias exceções.

Bom, espero que o artigo tenha ajudado e motivado aqueles que estão iniciando com Hibernate. Abraços e até o próximo artigo!

é Bacharel em Sistemas de Informação e Especialista em Gestão e Estratégia de Negócios. Trabalha com TI desde 2003 e possui as certificações SCJP 5 e SCM. Trabalhou na IBM Brasil como Analista Programador Java, passou pelo laboratório da Enterprise Computing Lab (ECL) HP como Software Engineer, Ci&amp;T como Engenheiro de Software em projeto JEE. Tem experiência internacional em Índia, Dubai e Londres. Atualmente é cofundador da ITSLabs (www.itslabs.com.br), uma start-up focada na criação de produtos web e mobile para start-ups. Também é autor dos livros "Guia do Exame SCJP", "Guia Prático JEE com Frameworks" e "TDD na prática".

Ver perfil