Iniciando com Hibernate

olá Pessoal,

Estarei dando inicio à uma série de posts sobre o Hibernate. O motivo é que sofri no inicio como todo iniciante. Principalmente nos princípios básicos.E ainda tenho meus sofrimentos quando preciso de algo mais avançado e bem especifico a um problema ou sistema legado onde o Hibernate está presente, dai vem o nosso amigo google, consultando os colegas mais vividos com a tecnologia etc. Mas, nos posts vou buscar dar uma luz para quem acha que está na escuridão, nesse inicio com o framework. Apesar que já temos alguns posts usando o Hibernate que podem ser visto aqui. Hoje veremos como usar Hibernate e para não ficar um post grande e cansativo, vou limitar a recursos simples do framework. Então veremos como configurar o Hibernate em um projeto java e depois ver o “brinquedo” funcionando.

Lets go…

Requisitos

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

Note

Usarei o Hibernate 3.2.x, pois é que tenho aqui nos meus projetos. Como ainda não tive a necessidade baixar a versão mais recente, mas para o que vamos fazer aqui, não precisa ser a versão mais recente.

Não usarei annotations nest post, até pq temos um post já sobre o assunto, então vou usar mapeamento, o motivo é que na minha opinião todos que vão iniciar com Hibernate precisar conhecer os mapeamentos XML, antes de ir para os Annotations. Os mapeamentos ainda é uma realidade em sistema legado, e vale lembrar que sistema legado eles representam uma boa parcela de oportunidades no mercado Java que pedem o Hibernate como framework. Não esqueça disso. Pois, um dia você vai precisar entender o mapeamento que alguém fez há alguns anos atras.


Preparação do ambiente

  1. primeiro passo é baixar o hibernate core no site www.hibernate.org para esse exemplo estou usando a versao Hibernate 3.2.1.GA e o Hibernate tools 3.24.ga
  2. Descompacte os arquivos
  3. abra o eclipse
  4. vá em windows preferences e digite user no campo de filter do eclipse
  5. Clique em New e em nome coloque Hibernate 3.2
  6. Agora vamos adicionar os .jars a essa biblioteca clique em add external jars.
  7. Bem, eu poderia simplesmente dizer selecione todos os arquivos da pasta lib do hibernate, mas não é necessário pois muitos arquivos nem serão executados. Veja na imagem abaixo os arquivos que vc precisa adicionar
  8. Mas, como vc sabe que sao esses arquivos Camilo? Simples, tem um arquivo chamado _README.txt na pasta lib do hibernate e lá ele informa quais arquivos são required. Se tiver dúvida dar uma olhada.
  9. Detalhe importante o arquivo hibernate3.jar não fica em lib e tb não consta na lista de arquivo required no _README.txt, mas vc deve adiciona-lo ele é essencial. Esta informação você consegue na documentação do Hibernate.
  10. Uma vez pronto a library com o Hibernate, faça o mesmo para o Driver MySql. Crie uma nova library e adicione o .jar do Banco de Dados. Obtenha o Driver do site da MySQL: http://www.mysql.com/downloads/connector/j/5.1.html
  11. Crie um Java Project no Eclipse
  12. adicione as bibliotecas no 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

  1. Chegamos na parte mais divertida – “desenvolvimento”. Crie um package em src chamado br.com.bean
  2. E 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;
    	}
    
    }
  3. Crie uma classe chamada TesteMessage (com o método main) e deixe conforme abaixo.
  4. 
    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");
    
    	}
    
    
    }
    
    
    
    
  5. por enquanto s isso, vamos agora criar os arquivos de configuração do hibernate com o BD + o mapeamento com classe.

Configuração Hibernate

  1. Abra a perspective Hibernate e depois vá em File ==> New ==> e escolha a opção conforme a imagem abaixo:
  2. clique em next.Escolha a classe que será mapeada, ou seja, Message. clique em add class
  3. clique em finish
  4. E agora adicione os codes abaixo(tive que colocar no formato de imagem, para evitar que o código fosse quebrado pelo plugin):
  5. Vamos criar o arquivo de configuracao Hibernate com o BD para isso faça o mesmo processo do passo 1, porem escolha a opcao conforme a imagem a seguir:
  6. Deixe o nome padrao sugerido e clique em next
  7. agora escolha o projeto e o package. No meu caso será MessageEx/src .
  8. Na próxima tela precisamos configurar o BD.Então deixe conforme a imagem a seguir:
  9. Apos ter configurado clique em finish
  10. 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”/>

    Ficando assim todo o codigo:

Testando

  1. para testar é bem simples. Vá na classe TesteMessage.java e clique em Run==> Java Application.
  2. Em seguida verifique se a informação foi inserida no BD. Não esqueça de dar um start no BD. Caso contrario receberá várias exceções.

Bom, vou ficando por aqui espero que o post tenha ajudado e motivado aqueles que estão iniciando com Hibernate. Abracos e até o proximo post. 🙂

9 comentários em “Iniciando com Hibernate”

  1. Você está usando XML para fazer o mapeamento, hoje em dia não fica mais intuitivo o uso de annotations?

    Abraço

    1. olá Thiago,

      Sim. Para apps novas com certeza annotations é a melhor opção. Mas, um programador java que usa hibernate se ele nao sabe fazer mapeamento ele não será feliz na vida dele. de 10 apps que vc encontrar que usa hibernate no mercado, 7 estão usando XML, pois são sistemas legados, pre-annotations. Então, o programador não pode se limitar apenas ao que nasceu “ontem” ele precisa saber tanto com XML com annotations, é sempre comum quem está iniciando querer ir para o mais recente e mais fácil, porém não é assim que está o mercado na maioria das oportunidades, saber os dois é o essencial 🙂
      abracos,

    1. opa! Tio,
      eu vi este post seu, no final de 2009, para inicio de 2010. excelente, está bem claro hehe! 🙂
      abracos,

  2. Não estou conseguindo fazer o download do “Hibernate tools 3.24.ga”. Poderia passar o link direto para o mesmo?

    1. olá Everson,
      Vc tentou pelo site site do hibernate? pois no blog, nao coloquei no link direto, pois é comum este sofrer mudança pela comunidade.
      abracos,

  3. gostei do tutorial, consegui completa-lo e tal.
    Senti um pouco de dificuldade em relacao aos jars, onde encontra-los… mas no fim consegui resolver tudo.
    Obrigado!

    1. olá vinicius,

      Os .jars vc pode encontrar na pagina do framework. Não coloquei um link, pq é comum eles sofrerem alterações.

      abracos,

Deixe um comentário

O seu endereço de e-mail não será publicado.