Republicado de: http://javafree.uol.com.br/artigo/3721/Pequeno-Tutorial-sobre-Hibernate.html


Autor: Carlos Barreto (carlos_barretto@hotmail.com)


Em homenagem ao Luiz Carlos Metzger que me ajudou durante o dia todo (17/02/2004) com as minhas dúvidas sobre o Hibernate vou filtrar tudo o que foi feito no post em que discutimos:

 

Antes que você possa seguir os passos deste exemplo é necessário que tenha baixado o Hibernate-2.1 no próprio www.hibernate.org e importar os .jar da pasta hibernate\lib para a lib do seu projeto ou IDE ou JVM.

 

Segue os 5 passos necessários para este pequeno exemplo de persistência de dados:

 

1. criar a tabela no seu banco de dados onde os objetos vão persistir;

2. criar o objeto cujo estado vai ser persistido;

3. criar um XML, que relaciona as propriedades do objeto aos campos na tabela

4. criar um arquivo contendo as propriedades para que o Hibernate se conecte ao bando de dados

5. criar a classe DAO que vai persistir seu objeto;

 

ANTES DE COMEÇAR LEMBRE-SE: TODOS ARQUIVOS DEVEM SER SALVOS NA MESMA PASTA!

 

passo 1. criando uma tabela de amigos no MySQL, você pode usar qualquer banco (afinal este é o Hibernate) mas eu preferi usar MySQL

 

   1. create table amigos( 

   2. nome varchar(40) NOT NULL default '', 

   3. endereco varchar(60) not null default '', 

   4. fone varchar(11) default null, 

   5. cel varchar(11) default null, 

   6. email varchar(70) default null, 

   7. nascimento datetime default null, 

   8. PRIMARY KEY (`nome`) 

   9. ); 

 

 

 

passo 2. Criar uma classe Amigo com seus atributos (campos do db) e métodos (set e get para cada atributo)

 

   1. public class Amigo { 

   2.    private String nome; 

   3.    private String endereco; 

   4.    private String telefone; 

   5.    private String celular; 

   6.    private String email; 

   7.    private java.util.Date nascimento; 

   8.  

   9.    public Amigo() { 

  10.    } 

  11.      

  12.    public String getNome(){ 

  13.       return nome; 

  14.    } 

  15.      

  16.    public void setNome(String nome){ 

  17.       this.nome = nome; 

  18.    } 

  19.      

  20.    public String getEndereco(){ 

  21.       return endereco; 

  22.    } 

  23.      

  24.    public void setEndereco(String endereco){ 

  25.       this.endereco = endereco; 

  26.    } 

  27.      

  28.    public String getTelefone(){ 

  29.       return telefone; 

  30.    } 

  31.      

  32.    public void setTelefone(String telefone){ 

  33.       this.telefone = telefone; 

  34.    } 

  35.      

  36.    public String getCelular(){ 

  37.       return celular; 

  38.    } 

  39.      

  40.    public void setCelular(String celular){ 

  41.       this.celular = celular; 

  42.    } 

  43.      

  44.    public String getEmail(){ 

  45.       return email; 

  46.    } 

  47.       

  48.    public void setEmail(String email){ 

  49.       this.email = email; 

  50.    } 

  51.  

  52.    public java.util.Date getNascimento(){ 

  53.       return nascimento; 

  54.    } 

  55.      

  56.    public void setNascimento(java.util.Date nascimento){ 

  57.       this.nascimento = nascimento; 

  58.    } 

  59.  

  60. } 

 

 

passo 3. Criar o Xml que irá relacionar os atributos com os campos da tabela

 

salvar este arquivo como Amigo.hbm.xml

 

   1. <?xml version="1.0"?> 

   2. <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD//EN" "http://hibernate.sourceforge.net/hibernate-mapping.dtd"> 

   3. <hibernate-mapping> 

   4.     <class name="Amigo" table="amigos"> 

   5.         <id name="nome" column="nome" type="string"> 

   6.             <generator class="assigned"/> 

   7.         </id> 

   8.         <property name="endereco" type="string"/> 

   9.         <property name="telefone" column="fone" type="string"/> 

  10.         <property name="celular" column="cel" type="string"/> 

  11.         <property name="email" type="string"/> 

  12.         <property name="nascimento" type="date"/> 

  13.     </class> 

  14. </hibernate-mapping> 

 

 

passo 4. Criar dois arquivos de propriedades para que o Hibernate se conecte ao Banco de Dados e para exibir os passos em um LOG

 

Salvar este arquivo como hibernate.properties

 

   1. hibernate.dialect=net.sf.hibernate.dialect.MySQLDialect 

   2. hibernate.connection.driver_class = org.gjt.mm.mysql.Driver 

   3. hibernate.connection.url = jdbc:mysql://localhost:3306/test 

   4. hibernate.connection.username = root 

   5. hibernate.connection.password = root 

 

 

e Salvar este arquivo como log4j.properties

 

   1. log4j.rootLogger=DEBUG, dest1  

   2.  

   3. log4j.appender.dest1=org.apache.log4j.ConsoleAppender  

   4. log4j.appender.dest1.layout=org.apache.log4j.PatternLayout  

   5. log4j.appender.dest1.layout.ConversionPattern=%d %-5p %-5c{3} %x -> %m%n  

   6.  

   7. #log4j.appender.dest2=org.apache.log4j.RollingFileAppender  

   8. #log4j.appender.dest2.File=bridge.log  

   9.  

  10. #log4j.appender.dest2.MaxFileSize=100KB  

  11. # Keep one backup file   

  12. #log4j.appender.dest2.MaxBackupIndex=3  

  13.  

  14. #log4j.appender.dest2.layout=org.apache.log4j.PatternLayout  

  15. #log4j.appender.dest2.layout.ConversionPattern=%d [%t] %-5p %-5c{3}(%L) %x -> %m%n 

 

 

passo 5. Criar a classe DAO que vai persistir o objeto Amigo

 

   1. import java.util.List; 

   2. import net.sf.hibernate.*; 

   3. import net.sf.hibernate.cfg.Configuration; 

   4.  

   5. public class AmigoDAO{ 

   6.  

   7.    private SessionFactory factory; 

   8.  

   9.    public AmigoDAO() throws Exception{ 

  10.        factory = new Configuration().addClass(Amigo.class).buildSessionFactory(); 

  11.    }      

  12.  

  13.    public void insert(Amigo amigo) throws Exception{ 

  14.       Session session = factory.openSession(); 

  15.       session.save(amigo); 

  16.       session.flush(); 

  17.       session.close(); 

  18.    } 

  19.      

  20.    public java.util.List getList(String condicao) throws Exception{ 

  21.       Session session = factory.openSession(); 

  22.       List amigos = session.find(condicao); 

  23.       session.flush(); 

  24.       session.close(); 

  25.       return amigos; 

  26.    } 

  27.      

  28.    public Amigo retrieve(String pk) throws Exception{ 

  29.       Session session = factory.openSession(); 

  30.       Amigo amigo = (Amigo)session.load(Amigo.class, pk); 

  31.       session.flush(); 

  32.       session.close(); 

  33.       return amigo; 

  34.    } 

  35.      

  36.    public void delete(Amigo amigo) throws Exception{ 

  37.       Session session = factory.openSession(); 

  38.       session.delete(amigo); 

  39.       session.flush(); 

  40.       session.close(); 

  41.    } 

  42. } 

 

 

para testar todos os passos acima criaremos um arquivo que eu chamei de TesteAmigo.java onde vamos instanciar as duas classes criadas e coloca-las para funcionar, segue abaixo

 

   1. public class TesteAmigo {  

   2.  

   3.    public static void main(String[] args) throws Exception {  

   4.  

   5.      try  

   6.      {  

   7.        Amigo amigo = new Amigo();  

   8.        amigo.setNome("seu nome");  

   9.        amigo.setEndereco("seu endereco");  

  10.        amigo.setTelefone("seu fone");  

  11.        amigo.setCelular("seu celular");  

  12.        amigo.setEmail("seu mail");  

  13.        //amigo.setNascimento("data do tipo Date");  

  14.           

  15.        AmigoDAO dao = new AmigoDAO();  

  16.        dao.insert(amigo);  

  17.  

  18.  

  19.      }  

  20.      catch(Exception e)  

  21.      {     

  22.        e.printStackTrace();//aqui vc vai saber que xabu é esse.  

  23.      }  

  24.    }  

  25. }  

 

 

Se seguirem os passos um a um poderão fazer a sua primeira persistência de dados utilizando o Hibernate