Hibernate me matando aos poucos

é sério…

me desculpem se o título do tópico tá meio sem noção, mas essa é a verdade… não sei mais o que fazer pra essa coisa funcionar…

Gente… já faz uma semana que to me matando nessa internet aqui, em busca de tutoriais, foruns, e artigos em geral sobre Como fazer uma bendida aplicação em Java usando Hibernate…

Mas deve ter alguma ‘vírgula’ do caramba que tá me atrapalhando…

tudo quanto é resultado do pai google para a pesquisa “tutorial hibernate”… “Hibernate na Prática”… “usando Hibernate”… “Como usar o Hibernate”… “Hibernate”…“Configurando o Eclipse para usar Hibernate”… eu já li…

Resumidamente… os passos para se criar uma aplicação com hibernate, até onde entendí e consegui fazer são:

[i]1 - Criar a base de dados onde os objetos irão persistir - OK
(fiz uma tabela Clientes no MySQL, com os campos Código e Nome, tudo String “VARCHAR”, e com o Código como Primary Key…).

2 - A Classe bean Clientes, ou seja, o objeto que será persistido… com os atributos codigo e nome, e seus devidos getters and setters. - OK

3 - O arquivo XML que relaciona minha classe Clientes com a Tabela Clientes. - OK

4 - Criar o arquivo de Propriedades para o Hibernate, com as informações da url do banco, usuário e senha. - OK

5 - Criar o arquivo de Propriedades log4j (log for java)… que serve para exibir os passos em um log (não entendi muito bem pra que isso serve, mas criei)…

6 - A classe DAO que vai persistir o Objeto Cliente. (no caso, a classe ClienteDAO)… os os método de insert, getList, retrieve e delete. - OK

7 - A classe que teste tudo, apenas usando o método insert. - OK[/i]

Todos esses arquivos criados estão no mesmo package…
Tentei também colocar os arquivos log4j.properties, hibrenate.properties e Cliente.hbm.xml na pasta raíz do meu projeto, e NAAAAAAADA…


Sem dúvida alguma, o mais complicado de toda essa chatisse que tá me dano nos nervos, é os import daki… copia jar aqui e cola ali, e num sei o q…

Cansei de ler sobre 'Coloque trocentos jar da pasta LIB do Hibernate, mais o jar Hibernate3, que está na pasta raíz do Hibernate, na pasta lib do seu projeto…

Fui, criei uma pasta lib na pasta raíz do meu projeto, colei láh todos os Jar’s, depois importei-os pelo Java Build Path… e nada

Ae fui… copiei todas essas benditas Bibliotecas, e colei na pasta (c:\Arquivos de programas\Java\jdk1.6.0_12\jre\lib)… e nadaaaaaa

ae tentei na pasta (c:\Arquivos de programas\Java\jdk1.6.0_12\jre\lib\ext)… e nada também..

JÁ NÃO SEI MAIS O QUE FAZER…
tenho um trabalho no meu curso sobre Hibernate pra ser apresentado em breve… e não consigo fazer essa jossa funcionar por nada…

Pelamorrrr, viu… Nunca sofrí tanto pra fazer alguma coisa funcionar aqui…
tá difícil, tá chato isso…

Sem dizer que preciso aprender messssssmo esse tal de Hibernate… que pelo que li, é um ótimo framework, um dos mais usados e talz…
Por que meu TCC tá sendo em Java… e nossos comandos SQL estão todos internos, nas classes beans, talz… e isso sinceramente é um serviço meio porco pra um TCC…

ESPERO DO FUNDO DO CORAÇÃO, QUE ALGUÉM CONSIGA ME DAR UMA LUZ…

Bom… vou deixar aqui, para quem tiver interesse em me ajudar, todo meu projeto, feito no Eclipse…

fica mais fácil do que eu postar todos os códigos…

Ae vai o link.
http://www.divshare.com/download/6899513-7c5

Até pq acho que o que estou fazendo de errado, é a bendita referenciação entre as bibliotecas e talz…

Obrigado a todos desde já…
Qualquer ajuda será muiiito bem vinda…

Sua aplicação tem que necessariamente ter que ser feita com o Hibernate???

Voce poderia utilizar JPA, abrindo mao de algumas vantagens como o Criteria do Hibernate, mas vejo como um caminho a seguir…

Obs.: Estou contando com o que vc falou, que vc tem 1 tabela MySQL chamada Cliente, e estou supondo que seus campos são "id" e "nome"

vamos la… no passo a passo…

Passo 1: se vc usa Windows, de ALT + TAB do seu IE explorer, ate achar o Eclipse, quando encontrar de ALT + F4
Passo 2: abra outra janela do IE e entre no site do netbeans e baixe o 6.5 (em portugues mesmo)
Passo 3: Instale o NetBeans
Passo 4: Clique em Arquivo > Novo Projeto
Passo 5: Esolha o nome: TCC Com Hibernate Rula
Passo 6: la embaixo onde tem escrito Criar classe principal altera para: "br.com.guj.meaudaram.Main"
Passo 7: clique com o direito em "Pacotes de código-fonte" e escolha: NOVO > OUTRO
Passo 8: Selecione Hibernate > Arquivo de configuração hibernate
Passo 9: avança na 1° tela onde tem "hibernate.cfg"
Passo 10: escolha o banco de dados > Nova Conexão com Banco de Dados
Passo 11: Onde tinha Java DB Network escolha MySQL (bla bla bla)
Passo 12: preencha os dados… provavelmente os campos serão host = localhost, port = 3306, banco de dados = nomeDoSeuBanco, usuario = root, senha = root, marque lembrar senha… e clique em OK… e clique em Finalizar (O netbens vai abrir uma janela de configuração bem amigavel…
Passo 13: clique com o direito no pacote br.com.guj.meajudaram e escolha: NOVO > OUTRO
Passo 14: Selecione Hibernate > Arquivos de mapeamento Hibernate e POJOs de banco de dados
Passo 15: avança na 1° tela onde tem "hibernate.reveng"
Passo 16: EURECA!! veja sua tabela do banco de dados aperecendo ai, caso vc tenha configurado o passo 12 corretamente…
Passo 17: Seleciona a tabela que vc ker usar, no seu caso a tabela Cliente e clique no botão Adconar… ela ira para o outro lado
Passo 18: Clique em proximo
Passo 19: Marque Recursos do JDK5, Anotações EJB, e aconselho desmarcar Mapeamento XML do hibernate (.hbm.xml) é akele arquivo xato de mapeamento q vc fez uma vez, ele não é bom @Annotation é melhor, mais vc q sabe
Passo 20: Clica no botão finalizar, cruza os desdos…
Passo 21: Olha pra sua pasta, O hibernate vai criar sozinho uns arquivos de entidades, prontos pra funcionar pro seu sistema, de acordo com as tabelas que vc selecionou
Passo 22: clique com o direito no pacote br.com.guj.meajudaram e escolha: NOVO > OUTRO
Passo 23: Selecione Hibernate > Hibernate.util … avance e finalize

CALMA!!! eu sei q vc ker rodar o programa… calma… falta so o drive do MySQL não vai ser dificil…

Passo 24: sei q vc ira gostar desse passo então curta esse momento q eu vou pro proximo passo
Passo 25: Ve que la embaixo tem 1 pasta escrita BIBLIOTECA ?? clica com direito la escolhe ADCIONAR BIBLIOTECA
Passo 26: Escolha MYSQL JDBC DRIVERS e adciona… pronto pronto… agora vamos usar o que agente fez…

Abra o arquivo Main.java e escreva o seguinte

[code]package br.com.guj.meaudaram;

import org.hibernate.Session;

public class Main {
public static void main(String[] args) {
Session session = NewHibernateUtil.getSessionFactory().openSession();
Cliente a = new Cliente("jose");
System.out.println(a.getId()); //apenas para confirmar que o ID é nulo antes de persistir
session.beginTransaction(); //inciamos 1 tranzação com o banco
session.save(a); //salvado no banco
session.getTransaction().commit(); //pegamos a tranzação corrente e comitamos (ou seja confirmamos
System.out.println(a.getId()); //EURECA!!! O ID APARECEU!

    System.out.println("agora va no seu banco e veja se persistiu corretamente");
}

}
[/code]

Passo 27: Clique com direito em "TCC Com Hibernate Rula" e escolha Limpar e Construir (isso ira remover tudo do projeto e recompilar)
Passo 28: Clique com direito em "TCC Com Hibernate Rula" e clique em executar

Um print screen ilustrativo com imagem depois de todos esses passo => http://img12.imageshack.us/img12/5718/semttulohfa.png

Se não funcionar me PROCESSE!!!

a saida no console vai ser um monte de coisa em vermelho (infos do hibernate) e algo parecido com a linha abaixo null 5 agora va no seu banco e veja se persistiu corretamente CONSTRUÍDO COM SUCESSO (tempo total: 2 segundos)
o número 5 foi impresso aqui pq foi a 5 vez que persiti o objeto…

Acredite!!! é verdade… o netbeans sabe configurar o hibernate, sabe quais bibliotecas usar, sabe fazer mapeamentos, sabe usar o drive do mysql, sabe como conectar ao seu banco e sabe como fazer sua pasta pra usar o projeto!

Ps.: quiser saber onde foi para os arquivos ?? Clique com direito em "TCC Com Hibernate Rula" e escolhe propriedades… la tem o caminho das pastas… pelo windows explorer xegando a pasta, vai ter 1 pasta la dentro… chamada "dist" … pronto… seu projeto ta la… poem num PEN DRIVE e seja feliz ^^ ele executa sozinho, desde que existe JVM e o banco MySQL instalado

Ps2.: Depois de um feedback dizendo que tudo deu certo, que é muito facil, e que inclusive vc ja abriu ate um blog ensinando como usar Hibernate ^^

Ola Hugo !
Antes de mais nada, vamos manter a calma, ok? Isso é o mais importante nesse momento…rss.

Bom, eu baixei seu projeto verifiquei algumas coisas:

  • Primeiro ponto(grave)
    O arquivo .properties deve esta no classpath no momento da compilação dos fontes, ou seja ele deve estar no diretorio src/ e percebi que no seu caso ele esta dentro do pacote hibernacao.

  • Segundo ponto(importante)
    Vc esta apontando um drive Dialect que o Hibernate desconhece, e eu tb!
    Dica - Procure usar o Driver, Connector do fornecedor do banco de dados, no seu caso MySQL
    Driver MySQL Connector - http://dev.mysql.com/downloads/connector/j/5.1.html
    Depois de baixar adicione ele no class path.

  • Dica
    Procure usar o arquivo hibernate.cfg.xml(procure sobre isso), vc vai achar bastante coisas sobre este arquivo. Na minha opniao ele é melhor de se trabalhar do que ficar adicionando classes em seus DAOs.

[ ]s,

Também estou com o mesmo problema. Estou tentando aprender a usar o Hibernate por vontade própria, mas ele simplesmente não funciona, e eu sigo o passo a passo os tutoriais.

Estou o usando o NetBeans 5.5.1, mas gostei dessa explicação do NetBeans 6.5. Se eu usar essa versão, eu não precisarei baixar os .jar do Hibernate?

Uma outra coisa que eu vi: esqueci de colocar o jar do Mysql no classpath. Talvez seja por isso que está acontecendo este erro:

INFO - Hibernate 3.3.1.GA
INFO - hibernate.properties not found
INFO - Bytecode provider name : javassist
INFO - using JDK 1.4 java.sql.Timestamp handling
INFO - configuring from resource: /hibernate.cfg.xml
INFO - Configuration resource: /hibernate.cfg.xml
INFO - Reading mappings from resource : Pessoa.hbm.xml
INFO - Mapping class: Pessoa -> Pessoa
INFO - Configured SessionFactory: null
Exception in thread “main” java.lang.NoSuchMethodError: org.slf4j.Logger.isTraceEnabled()Z
at org.hibernate.type.NullableType.(NullableType.java:59)
at org.hibernate.Hibernate.(Hibernate.java:103)
at org.hibernate.type.TypeFactory.(TypeFactory.java:69)
at org.hibernate.mapping.SimpleValue.getType(SimpleValue.java:283)
at org.hibernate.mapping.SimpleValue.isValid(SimpleValue.java:276)
at org.hibernate.mapping.Property.isValid(Property.java:207)
at org.hibernate.mapping.PersistentClass.validate(PersistentClass.java:45
at org.hibernate.mapping.RootClass.validate(RootClass.java:215)
at org.hibernate.cfg.Configuration.validate(Configuration.java:1135)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1320)
at Main.main(Main.java:41)
Java Result: 1
EXECUTADO COM SUCESSO (tempo total: 1 segundo)

[quote=EugenioMonteiro]…Estou o usando o NetBeans 5.5.1, mas gostei dessa explicação do NetBeans 6.5. Se eu usar essa versão, eu não precisarei baixar os .jar do Hibernate?
…[/quote]

precisa n… so o NetBeans 6.5 e ja rola ^^

Pois é, baixei e vi aqui. Gostei da forma que automatiza o uso Hibernate. Estava passando raiva com todos aqueles .jars e .xml. Quando eu achava um jar, pedia outro e assim por diante. Agora tenho um bom motivo para mudar para o NetBeans 6.5.

pois é… e ainda tem outra forma de fazer no netbeans… ARQUIVO > NOVO > PERSISTENCIA > … ai dentro dessa area tem la outra forma de fazer mapeamento tb

Seu Lavieri… acabei de fazer como vc indicou… e deu certinho…
Obrigado de verdade pela força…

Estou fazendo um programa para armazenamento de Contatos…

Já está tudo pronto as partes de cadastro, edição, exclusão e atualização dos contatos…
só que a forma que fiz, é com as classes beans, onde nelas, eu faço a conexão ‘manualmente’ com o banco… usando uma ConnectionFactory… talz…
e fazendo os métodos um de cada vez.

Agora vou tentar fazer isso tudo inserindo Hibernate em meu projeto…

Na boa… sei nem por ondi começar… mais acredito que com uns neorÔnios, o negócio sái…


Mateus… Obrigado por ter baixado meu projeto e ter identificado os erros…
Ainda não tive tempo para tentar concertar os mesmos, talz.
mas quando tiver um tempinho de sobra, tentarei fazer a persistência no Eclipse… fazendo na Unha as coisas… pois si der certo, pelo menos entenderei de verdade o que cada coisa fez.
xD

Obrigado a todos mais uma vez…

Inté…