[RESOLVIDO] Ajuda com HIBERNATE

Pessoal tenho um projetinho simples para aprender a usar o hibernate, mas tá me dando um erro que tá lascado não consigo achar problema

vamos do ínicio estou usando as seguintes bibliotecas

hibernate3
jta-1.1
antlr-2.7.6
commons-collections-3.1
dom4j-1.6.1
javassist-3.9.0.GA
c3p0-0.9.1
ehcache-1.2.3
slf4j-simple-1.5.2
slf4j-api-1.5.2
mysql-connector-java-5.1.8-bin

tenho 2 documento xml e 2 classe java

Aluno.java

public class Aluno
{
    private int alu_codigo;
    private String alu_nome;
    private String alu_cidade;
    private String alu_telefone;
    private String alu_curso;

    public Aluno()  //metódo construtor
    {   }
    
    public String getAlu_cidade()
    {
        return alu_cidade;
    }

    public void setAlu_cidade(String alu_cidade)
    {
        this.alu_cidade = alu_cidade;
    }

    public int getAlu_codigo()
    {
        return alu_codigo;
    }

    public void setAlu_codigo(int alu_codigo)
    {
        this.alu_codigo = alu_codigo;
    }

    public String getAlu_curso()
    {
        return alu_curso;
    }

    public void setAlu_curso(String alu_curso)
    {
        this.alu_curso = alu_curso;
    }

    public String getAlu_nome()
    {
        return alu_nome;
    }

    public void setAlu_nome(String alu_nome)
    {
        this.alu_nome = alu_nome;
    }

    public String getAlu_telefone()
    {
        return alu_telefone;
    }

    public void setAlu_telefone(String alu_telefone)
    {
        this.alu_telefone = alu_telefone;
    }
}

GravaAluno.java

import javax.swing.JOptionPane;
import org.hibernate.*;
import org.hibernate.cfg.*;

public class GravaAluno
{
    public static void main(String []args)
    {
        try
        {
            SessionFactory fabrica = new Configuration().configure().buildSessionFactory();
            Session sessao =  fabrica.openSession();
            Aluno aluno = new Aluno();
            aluno.setAlu_codigo(1);
            aluno.setAlu_nome("gustavoa");
            aluno.setAlu_curso("analise e desenvolvimento");
            aluno.setAlu_telefone("564446651");
            aluno.setAlu_cidade("Pato Branco");
            Transaction transacao_aluno = sessao.beginTransaction();
            sessao.save(aluno);
            transacao_aluno.commit();
            sessao.close();
        }
        catch(Exception e)
        {
            JOptionPane.showMessageDialog(null,"Erro na inserção : "+e);
        }
    }
}

aluno.hbm.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourcerforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
    <class name="Aluno" table="alunos">
        <id name="alu_codigo" type="int"/>
        <property name="alu_nome" />
        <property name="alu_cidade" />
        <property name="alu_telefone" />
        <property name="alu_curso" />
    </class>
</hibernate-mapping>

hibernate.cfg.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
          "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
          "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
    <session-factory>
        <property name="connection.url">
            jdbc:mysql://localhost:3306/javahibernate
        </property>
        <property name="connection.username">
            root
        </property>
        <property name="connection.password">
            root
        </property>
        <property name="connection.driver_class">
            com.mysql.jdbc.Driver
        </property>
        <property name="dialect">
            org.hibernate.dialect.MySQLDialect
        </property>
        <mapping resource="aluno.hbm.xml"/>
    </session-factory>
</hibernate-configuration>

quando executo a classe gravaAluno
me retorna um erro
Erro na inserção : org.hibernate.InvalidMappingException: Could not parse mapping document from resource aluno.hbm.xml

alguém sabe o motivo???

cara, essa apostila tem uma introdução muuuito bacana ao Hiberante.

flw

na console ele trás

16 [main] INFO org.hibernate.cfg.Environment - Hibernate 3.3.2.GA
32 [main] INFO org.hibernate.cfg.Environment - hibernate.properties not found
47 [main] INFO org.hibernate.cfg.Environment - Bytecode provider name : javassist
47 [main] INFO org.hibernate.cfg.Environment - using JDK 1.4 java.sql.Timestamp handling
141 [main] INFO org.hibernate.cfg.Configuration - configuring from resource: /hibernate.cfg.xml
141 [main] INFO org.hibernate.cfg.Configuration - Configuration resource: /hibernate.cfg.xml
282 [main] INFO org.hibernate.cfg.Configuration - Reading mappings from resource : aluno.hbm.xml

cara, tenta anotar sua classe com

@Entity

o campo alu_codigo com

@Id

apaga esse "aluno.hbm.xml "

e no hibernate.cfg.xml acrescenta:

<mapping class="NomeCompletoDaClasseComPacote"/>

lembrando os nomes dos atributos tem que ser igual aos nomes dos campos, e o nome da tabela igual ao nome da classe (inclusive maiusculas e minusculas) se não for tem outras anotações.

ve ai se ajuda

mas tá no diretório raiz não está em outro pacote, e pelo que estou vendo não existe necessidade de marca a classe

bom, eu sempre faço assim. e me parece relativamente simples. Dessa forma como vc ta fazendo eu ja não sei.

:roll:

tá usando essa forma de anotação que você me aconselho?

Aluno.java

public class Aluno
{
    private int alu_codigo;
    private String alu_nome;
    private String alu_cidade;
    private String alu_telefone;
    private String alu_curso;

    public Aluno()  //metódo construtor
    {   }
    
    public String getAlu_cidade()
    {
        return alu_cidade;
    }

    public void setAlu_cidade(String alu_cidade)
    {
        this.alu_cidade = alu_cidade;
    }

    public int getAlu_codigo()
    {
        return alu_codigo;
    }

    public void setAlu_codigo(int alu_codigo)
    {
        this.alu_codigo = alu_codigo;
    }

    public String getAlu_curso()
    {
        return alu_curso;
    }

    public void setAlu_curso(String alu_curso)
    {
        this.alu_curso = alu_curso;
    }

    public String getAlu_nome()
    {
        return alu_nome;
    }

    public void setAlu_nome(String alu_nome)
    {
        this.alu_nome = alu_nome;
    }

    public String getAlu_telefone()
    {
        return alu_telefone;
    }

    public void setAlu_telefone(String alu_telefone)
    {
        this.alu_telefone = alu_telefone;
    }
}

GravaAluno.java

import javax.swing.JOptionPane;
import org.hibernate.*;
import org.hibernate.cfg.*;

public class GravaAluno
{
    public static void main(String []args)
    {
        try
        {
            SessionFactory fabrica = new Configuration().configure().buildSessionFactory();
            Session sessao =  fabrica.openSession();
            Aluno aluno = new Aluno();
            aluno.setAlu_codigo(1);
            aluno.setAlu_nome("gustavoa");
            aluno.setAlu_curso("analise e desenvolvimento");
            aluno.setAlu_telefone("564446651");
            aluno.setAlu_cidade("Pato Branco");
            Transaction transacao_aluno = sessao.beginTransaction();
            sessao.save(aluno);
            transacao_aluno.commit();
            sessao.close();
        }
        catch(Exception e)
        {
            JOptionPane.showMessageDialog(null,"Erro na inserção : "+e);
        }
    }
}

aluno.hbm.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourcerforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
    <class name="Aluno" table="alunos">
        <id name="alu_codigo" type="int"/>
        <property name="alu_nome" />
        <property name="alu_cidade" />
        <property name="alu_telefone" />
        <property name="alu_curso" />
    </class>
</hibernate-mapping>

hibernate.cfg.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
          "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
          "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
    <session-factory>
        <property name="connection.url">
            jdbc:mysql://localhost:3306/javahibernate
        </property>
        <property name="connection.username">
            root
        </property>
        <property name="connection.password">
            root
        </property>
        <property name="connection.driver_class">
            com.mysql.jdbc.Driver
        </property>
        <property name="dialect">
            org.hibernate.dialect.MySQLDialect
        </property>
        <mapping resource="aluno.hbm.xml"/>
    </session-factory>
</hibernate-configuration>

sim … sempre fiz assim. Inclusive no link que passei no começo do topico tem uma parte de introdução ao hibernate muito bacana que ensina a fazer assim.

pega meu msn goust_avo@hotmail.com e posto a solução aqui pro pessoal

pessoal solucionei o problema a principio literalmente não sei o que era o erro, a solução foi alterar de banco mysql para o postgre, logo alterar o driver. aLterar O username no xml de root para postgres e rodou beleza qualquer coisa entre em contato

fala gustavoa blz, rapaz eu fiz uma aplicação igualzinha a sua,inclusive com as mesmas classes que você postou eu vi este post resolvi postar porque estou usando hibernate 3 com postgresql 8.2 e ao executar o GravaAluno que no meu caso chama EditaAluno está gerando o seguinte erro:

exception in thread "main" java.lang.AbstractMethodError: org.postgresql.jdbc2.Jdbc2DatabaseMetaData.supportsGetGeneratedKeys()Z at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:123) at org.hibernate.cfg.Configuration.buildSettingsInternal(Configuration.java:2119) at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2115) at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1339) at EditaAluno.main(EditaAluno.java:12)

tambem coloquei todas as bibliotecas do hibernate 3.0 e do postgresql.

você sabe me dizer o que pode estar acontecendo?

fico grato se poder ajudar…