Olá pessoal,
Estou tentando fazer meu primeiro exercício usando Hibernate. A minha estrutura é a seguinte:
Netbeans 5
MySql 5.0
Agora olha oque eu fiz:
Classe Pessoa.java
package mypackage;
public class Pessoa {
private int idPessoa;
private String nomePessoa;
private String sobrenomePessoa;
/** Creates a new instance of Pessoa */
public Pessoa() {
}
public int getIdPessoa() {
return idPessoa;
}
public void setIdPessoa(int idPessoa) {
this.idPessoa = idPessoa;
}
public String getNomePessoa() {
return nomePessoa;
}
public void setNomePessoa(String nomePessoa) {
this.nomePessoa = nomePessoa;
}
public String getSobrenomePessoa() {
return sobrenomePessoa;
}
public void setSobrenomePessoa(String sobrenomePessoa) {
this.sobrenomePessoa = sobrenomePessoa;
}
}
Pessoa.hbm.xml
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="mypackage.Pessoa" table="pessoa">
<id name="idPessoa" column="ID">
<generator class="native"/>
</id>
<property name="nomePessoa" column="Nome"/>
<property name="sobrenomePessoa" column="Sobrenome"/>
</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 name="java:comp/env/hibernate/SessionFactory">
<property name="connection.driver_class">
org.gjt.mm.mysql.Driver
</property>
<property name="connection.url">
jdbc:mysql://localhost:3306/curso
</property>
<property name="dialect">
org.hibernate.dialect.MySQLDialect
</property>
<property name="show_sql">true</property>
<property name="connection.username">root</property>
<property name="connection.password">123456</property>
<property name="connection.pool_size">10</property>
<mapping resource="mypackage/Pessoa.hbm.xml"/>
</session-factory>
</hibernate-configuration>
PessoaDAO.java
package mypackage;
import java.util.List;
import org.apache.log4j.Logger;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import org.hibernate.cfg.Environment;
import org.hibernate.*;
public class PessoaDAO {
private SessionFactory factory;
public PessoaDAO() throws Exception{
factory = new Configuration().addClass(Pessoa.class).buildSessionFactory();
}
public void insert(Pessoa pessoa) throws Exception{
Session session = factory.openSession();
Transaction transaction = session.getTransaction();
transaction.begin();
session.save(pessoa);
transaction.commit();
//session.flush();
session.close();
}
}
Classe TestePessoa.java - Estou utilizando para povar o objeto
public class TestePessoa {
/** Creates a new instance of TestePessoa */
public TestePessoa() {
}
public void teste() {
try {
Pessoa pessoa = new Pessoa();
pessoa.setIdPessoa(1);
pessoa.setNomePessoa("nome");
pessoa.setSobrenomePessoa("Sobrenome");
PessoaDAO dao = new PessoaDAO();
dao.insert(pessoa);
} catch(Exception e) {
e.printStackTrace();
}
}
}
A Classe TesteAdiciona.java que estou utilizando para rodar, assim consigo ver os erros.
package mypackage;
public class TesteAdiciona {
public static void main(String[] args) {
TestePessoa testePessoa = new TestePessoa();
testePessoa.teste();
}
}
Quando eu rodo a classe acima os seguintes erros são apresentados:
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: Hibernate Dialect must be explicitly set
at org.hibernate.dialect.DialectFactory.determineDialect(DialectFactory.java:57)
at org.hibernate.dialect.DialectFactory.buildDialect(DialectFactory.java:39)
at org.hibernate.cfg.SettingsFactory.determineDialect(SettingsFactory.java:378)
at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:110)
at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:1881)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1174)
at mypackage.PessoaDAO.<init>(PessoaDAO.java:17)
at mypackage.TestePessoa.teste(TestePessoa.java:17)
at mypackage.TesteAdiciona.main(TesteAdiciona.java:11)
BUILD SUCCESSFUL (total time: 2 seconds)
O meu projeto no Netbeans está da seguinte maneira:
firsthibernate
...\Web Pages
........\META-INF
........\WEB-INF
...\Web Services
...\Configuration Files
...\Server Resources
...\Source Packages
........\mypackage
.................Pessoa.java
.................Pessoa.hbm.xml
.................PessoaDAO.java
.................TesteAdiciona.java
.................TestePessoa.java
.................hibernate.cfg.xml
...\Test Packages
...\Libraries
...\Test Libraries
O que eu estou fazendo errado?
Grato pela ajuda de todos.
Wallfox