Problemas com Hibernate 3

4 respostas
pauloperes

Olá Pessoal, to tentando usar o hibernate pela primeira vez, porém num ta dando certo, da um erro que num faço nem idéia de como resolver.

vejam os códigos:

Classe Amigo:

public class Amigo {
    private String nome;
    private String endereco;
    private String fone;
    private String celular;
    private String email;
    private java.util.Date nascimento;
    
    public String getNome(){
        return nome;
    }

    public void setNome(String nome){
        this.nome = nome;
    }
    
    public String getEndereco(){
        return endereco;
    }
    
    public void setEndereco(String endereco){
        this.endereco = endereco;
    }
    
    public String getFone(){
        return fone;
    }
    
    public void setFone(String fone){
        this.fone = fone;
    }
    
    public String getCelular(){
        return celular;
    }
    
    public void setCelular(String celular){
        this.celular = celular;
    }
    
    public String getEmail(){
        return email;
    }
    
    public void setEmail(String email){
        this.email = email;
    }
   
    public java.util.Date getNascimento(){
        return nascimento;
    }
    
    public void setNascimento(java.util.Date nascimento){
        this.nascimento = nascimento;
    }    
    
}
Arquivo Amigo.hbm.xml
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD//EN"
"http://hibernate.sourceforge.net/hibernate-mapping.dtd">
<hibernate-mapping>
    <class name="Amigo" table="amigos">
        <id name="nome" column="nome" type="string">
            <generator class="assigned"/>
        </id>
        <property name="endereco" type="string"/>
        <property name="fone" column="fone" type="string"/>
        <property name="celular" column="cel" type="string"/>
        <property name="email" type="string"/>
        <property name="nascimento" type="date"/>
    </class>
</hibernate-mapping>
Arquivo AmigoDAO
import org.hibernate.*;
import java.util.Date;

public class AmigoDAO{
    org.hibernate.cfg.Configuration cfg = new org.hibernate.cfg.Configuration().addClass(Amigo.class);
    SessionFactory sf = cfg.buildSessionFactory();
    
    public void insert(Amigo amigo) throws Exception{
        Session sessao = sf.openSession();
        sessao.save(amigo);
        sessao.flush();
        sessao.close();
    }
    
}
Arquivo hibernate.properties
hibernate.connection.driver_class = com.mysql.jdbc.Driver
hibernate.connection.url = jdbc:mysql://localhost:3306/hibernate
hibernate.connection.username = root
hibernate.connection.password = 123456
Programa Principal
public class Programa {
    public static void main (String args[]){
        Amigo amigo = new Amigo();
        AmigoDAO dao = new AmigoDAO();
        
        
        // Setando os valores do objeto AMIGO
        amigo.setNome("Corinthians");
        amigo.setEndereco("Parque São Jorge");
        amigo.setFone("00000000");
        amigo.setCelular("00000000");
        amigo.setEmail("[email removido]");
        
        // Fazendo um insert
        dao.insert(amigo);
        
    }
  
    
    

    
}
E erro
init:
deps-jar:
Compiling 1 source file to D:\j2ee\Hibernate\build\web\WEB-INF\classes
D:\j2ee\Hibernate\src\Programa.java:26: unreported exception java.lang.Exception; must be caught or declared to be thrown
        dao.insert(amigo);
1 error
D:\j2ee\Hibernate\nbproject\build-impl.xml:203: The following error occurred while executing this line:

D:\j2ee\Hibernate\nbproject\build-impl.xml:92: Compile failed; see the compiler error output for details.
BUILD FAILED (total time: 0 seconds)

Peguei um exemplo do guj, e tentei adaptar para o hibernate3, estou utilizando o netbeans4.

Se alguem puder me ajudar.

Valeu
Paulo Henrique

4 Respostas

C
public void insert(Amigo amigo) throws Exception

No seu método main falta colocar um throws Exception ou colocar um try \catch quando for fazer a chamada ao método insert.

pauloperes

Cara fiz o q vc mandou, e veja o erro agora:

init: deps-jar: compile-single: run-main: 13/04/2005 17:51:26 org.hibernate.cfg.Environment <clinit> INFO: Hibernate 3.0rc1 13/04/2005 17:51:26 org.hibernate.cfg.Environment <clinit> INFO: hibernate.properties not found 13/04/2005 17:51:26 org.hibernate.cfg.Environment <clinit> INFO: using CGLIB reflection optimizer 13/04/2005 17:51:26 org.hibernate.cfg.Environment <clinit> INFO: using JDK 1.4 java.sql.Timestamp handling 13/04/2005 17:51:26 org.hibernate.cfg.Configuration addClass INFO: Mapping resource: Amigo.hbm.xml java.lang.NoClassDefFoundError: org/apache/commons/collections/SequencedHashMap at org.hibernate.mapping.Table.<init>(Table.java:33) at org.hibernate.cfg.Mappings.addTable(Mappings.java:115) at org.hibernate.cfg.HbmBinder.bindRootPersistentClassCommonValues(HbmBinder.java:248) at org.hibernate.cfg.HbmBinder.bindRootClass(HbmBinder.java:233) at org.hibernate.cfg.HbmBinder.bindRoot(HbmBinder.java:149) at org.hibernate.cfg.Configuration.add(Configuration.java:358) at org.hibernate.cfg.Configuration.addInputStream(Configuration.java:395) at org.hibernate.cfg.Configuration.addClass(Configuration.java:463) at AmigoDAO.<init>(AmigoDAO.java:5) at Programa.main(Programa.java:4) Exception in thread "main" Java Result: 1 BUILD SUCCESSFUL (total time: 4 seconds)

_fs

Colque todos os jars contidos no dirtório ‘hibernate_home/lib’ no classpath da sua aplicação.

pauloperes

Lipe, fiz o q vc falou, porém continua dando pau, veja o erro:

init: deps-jar: compile-single: run-main: log4j:WARN No appenders could be found for logger (org.hibernate.cfg.Environment). log4j:WARN Please initialize the log4j system properly. org.hibernate.HibernateException: The dialect was not set. Set the property hibernate.dialect. at org.hibernate.dialect.Dialect.getDialect(Dialect.java:474) at org.hibernate.dialect.Dialect.getDialect(Dialect.java:496) at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:51) at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:1497) at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1041) at AmigoDAO.<init>(AmigoDAO.java:6) at Programa.main(Programa.java:4) Exception in thread "main" Java Result: 1 BUILD SUCCESSFUL (total time: 3 seconds)

Vendo isso mudei o meu arquivo hibernate.properties, colocando a variavel do Dialeto da seguinte forma:

hibernate.dialect = org.hibernate.dialect.MySQLDialect

Valeu,

Paulo

Criado 13 de abril de 2005
Ultima resposta 14 de abr. de 2005
Respostas 4
Participantes 3