Вы находитесь на странице: 1из 7

Tutorial Criando uma aplicao

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.

create table amigos(


nome varchar(40) NOT NULL default '',
endereco varchar(60) not null default '',
fone varchar(11) default null,
cel varchar(11) default null,
email varchar(70) default null,
nascimento datetime default null,
PRIMARY KEY (`nome`)
);

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. }

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


salvar

este

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

arquivo

como

Amigo.hbm.xml

2. <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DT


D//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
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. }

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. }

Вам также может понравиться