You are on page 1of 4

Caros amigos,

Depois de um bom tempo correndo atrás de todas as dicas sobre Hibernate, consegui fazer uma aplicação funcionar,
primeiro numa aplicação cliente/servidor e depois no ambiente web utilizando o TomCat.

Ferramentas utilizadas:

Java (jdk-1_5_0_06-windows-i586-p)
Eclipse (lomboz)
TomCat (jakarta-tomcat-5.5.10)
Hibernate 3.02
MySql 4.01

Vamos criar um novo projeto:


Clicar em File | new | project | TomCat project
Informe o nome: "SeuProjeto"
Em project contents, desmarque a opção "Use default", clique em Browse e vá até a pasta webapps que fica dentro da
pasta onde o TomCat foi instalado. Chegando nela, clique em "Criar nova pasta", informe o nome dela "SeuProjeto" e
clique direto em Finish.

Se voce clicar em Window | Show View | Navigator

O projeto deverá ter esta estrutura:

SeuProjeto
WEB-INF
classes
lib
src
work

O grande problema para fazer funcionar o Hibernate é a configuração das pastas, saber quem é quem e onde colocar...

Baixe o Hibernate 3.02 e descompacte-o em alguma pasta no seu computador


Pegue tambem o drive do Mysql (mysql-connector-java-3.1.12-bin.jar) e coloque-o na pasta lib Vamos distribuir os
arquivos:
O arquivo hibernate3.jar coloque-o na pasta razi do projeto (SeuProjeto)

Sei que não precisamos de todos mas vamos pecar por excesso:
Pegue todos os arquivos .jar do hibernate, juntamente com driver MySql e coloque-os na pasta lib

Depois você poderá fazer uma limpeza, retirando alguns mas sempre lembrando de testar a aplicação...

Vamos informar ao projeto que existem novos JARs


Com o projeto selecionado aceese o Menu clicando em:
Project | properties | java Build Pach | na aba Libraries | no botão ADD JARs
Serão exibidas as pasta do seu projeto, localize as pastas onde estão os arquivos JAR´s, selecione-os e clique em OK.

Peque os arquivos hibernate.properties e log4j.properties e coloque-os na pasta classes do projeto

Abra o hibernate.properties com algum editor (notepad) e altere os parametros de conformidade com a configuração
da sua conexão com a base de dados (é moleza...mas extremamente importante, sem isto jamais o sistema
encontrará a base de dados)
É algo parecido com isto:
hibernate.connection.driver_class = com.mysql.jdbc.Driver
hibernate.connection.url = jdbc:mysql://localhost:3306/SeuProjeto
hibernate.connection.username = usuario
hibernate.connection.password = senha

Importante: Todos arquivos criados a partir do tutorial, salvar na pasta src


Numa segunda fase, trabalhando com uma estrutura de camadas (apresentação, negócio e dados) informarei onde
cada arquivo deverá ficar, por padrão.

Criando de classe Usuario, UsuarioDAO e mapeamento da classe:

Criar o arquivo conforme abaixo e salvar como Usuario.java


public class Usuario {
private String usCod;
private String usSenha;
private String usNome;
private String usEmail;

public Usuario(){
}

public Usuario(String usCod, String usSenha, String usNome, String usEmail) {


this.setUsCod(usCod);
this.setUsSenha(usSenha);
this.setUsNome(usNome);
this.setUsEmail(usEmail);
}

//... IMPORTANTE: colocar os métodos GETs e SETs...

Vamos criar a Classe UsuarioDAO, responsavel pela conexao com a base de dados, salve-a como UsuarioDAO.java
import java.util.List;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.hibernate.classic.Session;
import org.hibernate.criterion.Expression;

public class UsuarioDAO{

private SessionFactory factory;

public UsuarioDAO() throws Exception{


factory = new Configuration().addClass(Usuario.class).buildSessionFactory();

public void UsInserir(Usuario us) throws Exception {


Session session = factory.openSession();
session.save(us);
session.flush();
session.close();
}

public void UsAlterar(Usuario us) throws Exception {


Session session = factory.openSession();
session.update(us);
session.flush();
session.close();
}
public void UsExcluir(Usuario us) throws Exception {
Session session = factory.openSession();
session.delete(us);
session.flush();
session.close();
}
}

Criando o mapeamento da classe para o Hibernate:

Criar o arquivo com os dados abaixo e salvar como Usuario.hbm.xml. Ele deverá ficar na mesma pasta do
Usuario.java
Nota: O arquivo abaixo é um xml e para funcionar, retire o espaço que existe entre o sinal < e a linha de comando. Ele
foi inserido para que o browser não interpretasse como tal.

< ?xml version="1.0"?>


< !DOCTYPE hibernate-mapping PUBLIC "-//Hibernate Mapping DTD 3.0//EN"
"hibernate-mapping-3.0.dtd">

< hibernate-mapping>
< class name="Usuario" table="tb_usuarios">
< id name="UsCod" column="USCOD" type="string">
< generator class="assigned"/>
< /id>
< property name="UsSenha" column="USSENHA" type="string"/>
< property name="UsNome" column="USNOME" type="string"/>
< property name="UsEmail" column="USEMAIL" type="string"/>
< /class>
< /hibernate-mapping>

Verifique que este xml será validado pelo arquivo hibernate-mapping-3.0.dtd.


Como voce ainda não tem este arquivo em sua máquina, faça uma busca rápida no professor google com o texto
"hibernate-mapping-3.0.dtd" deverão surgir alguns links deste arquivo, quando voce clicar ele abrirá como um arquivo
texto, peque o conteúdo e salve com o nome acima dentro da pasta raiz do seu projeto, no nosso caso, na pasta
SeuProjeto.
Este recurso evita que o sistema não encontre o validador quando voce estiver rodando a plicação sem uma conexao
com a web.

Caso voce não tenha criado a tabela na base de dados este script deverá criar a tabela.
Abra o admin do mysql e, dentro de uma nova query, cole o texto abaixo e execute-o:

/*
MySQL Data Transfer
Source Host: localhost
Source Database: seuprojeto
Target Host: localhost
Target Database: seuprojeto
Date: 24/11/2006 06:11:53
*/

SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for tb_usuario
-- ----------------------------
CREATE TABLE `tb_usuario` (
`USCOD` varchar(50) NOT NULL default '',
`USSENHA` varchar(50) default NULL,
`USNOME` varchar(50) default NULL,
`USEMAIL` varchar(50) default NULL,
PRIMARY KEY (`USCOD`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='InnoDB free: 3072 kB';

-- ----------------------------
-- Records
-- ----------------------------
INSERT INTO `tb_usuarios` VALUES ('well', '123', 'wellington marinheiro', 'wmarinheiro@hotmail.com');

Pronto !!! Até aqui temos:


Hibernate configurado dentro do projeto;
A Classe Usuario;
A Classe UsuarioDAO;
O Mapeamento;
A tabela no banco de dados;

Para testar esta fase, não vamos ainda para o TomCat, criaremos uma classe main para teste...

Copie o conteúdo abaixo em uma nova classe main e salve com o nome Teste.java, dentro da pasta src

public class Teste {

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

try
{
String log = "login";
String senha = "abc";
String nome = "Rafael";
String email = "Rafael@email.com.br";

UsuarioDAO dao = new UsuarioDAO;


Usuario usuario = new Usuario(log,senha,nome,email);
dao.UsInserir(usuario);
System.out.println("Registro inserido com sucesso!!!");
}
catch(Exception e)
{
System.out.println("Não foi possivel, Erro: " + e.getMessage());
}
}
}

Fazendo um resumo dos arquivos criados e seus locais:

SeuProjeto:
hibernate3.jar
hibernate-mapping-3.0.dtd

WEB-INF
classes
hibernate.properties
log4j.properties
Usuario.hbm.xml (Este vem automaticamente, não precisa salvar aqui...)

lib
...com todos os JARs trazidos do pacote Hibernate 3.2

src
hibernate.properties
log4j.properties
UsuarioDAO.java
Teste.java
Usuario.java
Usuario.hbm.xml

Execute este arquivo e, se tudo estiver como descrito, voce terá inserido o primeiro registro numa base de dados
utilizando o hibernate...

É pouco mas já é um começo, na proxima etapa, conforme prometido, vamos inserir registros num ambiente web,
através de uma pagina jsp.

Espero ter ajudado,


Wellington Marinheiro
wmarinheiro@hotmail.com

You might also like