Академический Документы
Профессиональный Документы
Культура Документы
com o hibernate
Em homenagem ao Luiz Carlos Metzger que me ajudou durante o dia todo (17/02/2004)
com as minhas dvidas sobre o Hibernate vou filtrar tudo o que foi feito no post em que
discutimos:
Antes que voc possa seguir os passos deste exemplo necessrio que tenha baixado o
Hibernate-2.1 no prprio 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 necessrios para este pequeno exemplo de persistncia de dados:
1. criar a tabela no seu banco de dados onde os objetos vo 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 COMEAR 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.
2.
3.
4.
5.
6.
7.
8.
9.
passo 2. Criar uma classe Amigo com seus atributos (campos do db) e mtodos (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. }
este
1. <?xml version="1.0"?>
arquivo
como
Amigo.hbm.xml
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
1.
2.
3.
4.
5.
este
arquivo
como
hibernate.properties
hibernate.dialect=net.sf.hibernate.dialect.MySQLDialect
hibernate.connection.driver_class = org.gjt.mm.mysql.Driver
hibernate.connection.url = jdbc:mysql://localhost:3306/test
hibernate.connection.username = root
hibernate.connection.password = root
Salvar
1.
2.
3.
4.
5.
este
arquivo
como
log4j.properties
log4j.rootLogger=DEBUG, dest1
log4j.appender.dest1=org.apache.log4j.ConsoleAppender
log4j.appender.dest1.layout=org.apache.log4j.PatternLayout
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
classe
DAO
que
vai
persistir
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. }