Caros amigos, Depois de um bom tempo correndo atrás de todas as dicas sobre Hibernate, consegui fazer uma aplicação aplicação cliente/servidor e depois no ambiente web utilizando o TomCat. funcionar, primeiro numa 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 work O grande problema para fazer funcionar o Hibernate é a configuração das pastas, saber quem é quem e on 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 dis O arquivo hibernate3.jar coloque-o na pasta razi do projeto (SeuProjeto) de colocar... tribuir os arquivos: 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 co nfiguração da sua conexão com a base de dados (é moleza...mas extremamente importante, sem isto jamais o sistema encontrará a ba se 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 Numa segunda fase, trabalhando com uma estrutura de camadas (apresentação, negócio e dados) informarei onde cada arquivo deverá 1 de 5 05-08-2008 10:35
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 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; UsuarioDAO.java 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.save(us); public void UsAlterar(Usuario us) throws Exception { session.update(us); public void UsExcluir(Usuario us) throws Exception { 2 de 5 05-08-2008 10:35
session.delete(us); 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 t 3.0.dtd" deverão surgir alguns links deste arquivo, quando voce clicar ele abrirá como um arquivo text 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 u exto "hibernate-mappingo, peque o conteúdo e salve ma 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`) 3 de 5 05-08-2008 10:35
) 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 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 4 de 5 05-08-2008 10:35
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 bas hibernate... e de dados utilizando o É 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 5 de 5 05-08-2008 10:35