Netbeans e Hibernate Problemas de conexao com PostgreSQL

2 respostas
Hugo009

olá pessoal, sou iniciante em Java e estou desenvolvendo uma aplicação usando netbeans versão 6.5.1 com hibernate 3 e banco de dados PostgreSQL 8.2. no meu projeto utilizei 4 classes java:

  • uma para configuração do hibernate;
  • outra para mapeamento;
  • uma para gravar no banco de dados;
    e outra classe para encapsular os campos da tabela do banco de dados;

adicionei todas as bibliotecas do hibernate distribution e todas as bibliotecas de driver do PostgreSQL no meu projeto quando eu compilo não gera nenhum erro, porém quando eu mando executar a classe para garavar no banco gera o seguinte erro:

[color=red]Exception in thread “main” java.lang.AbstractMethodError: org.postgresql.jdbc2.Jdbc2DatabaseMetaData.supportsGetGeneratedKeys()Z[/color]

será que existe algum bug no jar do PostgreSQL ou meu banco de dados está com alguma configuração errada…

se alguem poder me ajudar agradeço!!

2 Respostas

Hugo009

abaixo segue-se o codigo fonte das classes:

classe de configuração: 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="hibernate.connection.driver_class">
        org.postgresql.Driver
        </property>
    <property name="hibernate.connection.url">
        jdbc:postgresql://localhost/Hibernate
        </property>
    <property name="hibernate.connection.username">
            postgres
            </property>
    <property name="hibernate.connection.password">
            hugolc
            </property>
    <property name="hibernate.dialect">
            org.hibernate.dialect.PostgreSQLDialect
            </property>
    <property name="show_sql"> true </property>
    <property name="pool_size">10 </property>
    <mapping resource="aluno.hbm.xml"/>
  </session-factory>
</hibernate-configuration>

classe de mapeamento :aluno.hbm.xml

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
    <class name="Aluno" table="Alunos">
        <id name="alu_codigo" column="alu_codigo" type="int"/>
        <property name="alu_nome"/>
        <property name="alu_fone"/>
        <property name="alu_cidade"/>
        <property name="alu_curso"/>
        </class>
    </hibernate-mapping>
classe para gravar no banco de dados: EditaAluno.java:
import javax.swing.*;
import org.hibernate.*;
import org.hibernate.cfg.*;
public class EditaAluno {


    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("Hugo");
            aluno.setAlu_fone("0000-0000");
            aluno.setAlu_curso("Informatica");
            aluno.setAlu_cidade("SP");
            Transaction ta_aluno = sessao.beginTransaction();
            sessao.save(aluno);
            ta_aluno.commit();
            sessao.close();
        }
        catch(Exception erro)
        {
           JOptionPane.showMessageDialog(null, "erro na excessão :" + erro);
        }
    }
}

classe para encapsular campos da tabela: Aluno.java

public class Aluno {

    private int alu_codigo;
    private String alu_nome;
    private String alu_cidade;
    private String alu_fone;
    private String alu_curso;
    public Aluno(){

        


    }

    /**
     * @return the alu_codigo
     */
    public int getAlu_codigo() {
        return alu_codigo;
    }

    /**
     * @param alu_codigo the alu_codigo to set
     */
    public void setAlu_codigo(int alu_codigo) {
        this.alu_codigo = alu_codigo;
    }

    /**
     * @return the alu_nome
     */
    public String getAlu_nome() {
        return alu_nome;
    }

    /**
     * @param alu_nome the alu_nome to set
     */
    public void setAlu_nome(String alu_nome) {
        this.alu_nome = alu_nome;
    }

    /**
     * @return the alu_cidade
     */
    public String getAlu_cidade() {
        return alu_cidade;
    }

    /**
     * @param alu_cidade the alu_cidade to set
     */
    public void setAlu_cidade(String alu_cidade) {
        this.alu_cidade = alu_cidade;
    }

    /**
     * @return the alu_fone
     */
    public String getAlu_fone() {
        return alu_fone;
    }

    /**
     * @param alu_fone the alu_fone to set
     */
    public void setAlu_fone(String alu_fone) {
        this.alu_fone = alu_fone;
    }

    /**
     * @return the alu_curso
     */
    public String getAlu_curso() {
        return alu_curso;
    }

    /**
     * @param alu_curso the alu_curso to set
     */
    public void setAlu_curso(String alu_curso) {
        this.alu_curso = alu_curso;
    }

}

se alguem poder me ajudar, fico grato!!!

Hugo009

Olá Pessoal, consegui resolver o problema
eu reinstalei o PostgreSQL…
e na minha classe hibernate.cfg.xml o caminho do banco estava mapeado errado…

obrigado!!!

Criado 2 de setembro de 2009
Ultima resposta 29 de dez. de 2009
Respostas 2
Participantes 1