Abaixo segue alguns detalhes sobre o teste que estou fazendo… e não está rodando direito
- Coloquei todos os arquivos em um único diretório;
- Copiei todos os arquivos da pasta lib do arquivo hibernate-2.1.7c.zip baixado do site do Hibernate, para a pasta lib do meu projeto;
- Estou usando o Eclipse;
- A estrutura do diretório é:
nomeProjeto
|
- WEB-INF
|
- classes
|
- teste
|
- hibernate
|
- Amigo.class
- AmigoDAO.class
- TesteAmigo.class
- hibernate.properties
- log4j.properties
- Amigo.hbm.xml
- lib
- src
|
- teste
|
- hibernate
|
- Amigo.java
- AmigoDAO.java
- TesteAmigo.java
- hibernate.properties
- log4j.properties
- Amigo.hbm.xml
Tabela amigos:
[color=green]create table amigos(
nome varchar(40) NOT NULL default ‘’,
endereco varchar(60) not null default ‘’,
fone varchar(11) default null,
cel varchar(11) default null,
email varchar(70) default null,
nascimento datetime default null,
PRIMARY KEY (nome
)
);[/color]
Arquivo Amigo.java
[code]
package teste.hibernate;
public class Amigo {
private String nome;
private String endereco;
private String telefone;
private String celular;
private String email;
private java.util.Date nascimento;
public Amigo() {
}
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 getTelefone(){
return telefone;
}
public void setTelefone(String telefone){
this.telefone = telefone;
}
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;
}
} [/code]
Arquivo Amigo.hbm.xml
[code]
<?xml version="1.0"?>
[/code]
Arquivo hibernate.properties
hibernate.dialect=net.sf.hibernate.dialect.MySQLDialect
hibernate.connection.driver_class = org.gjt.mm.mysql.Driver
hibernate.connection.url = jdbc:mysql://localhost:3306/cadevc2_agresteonline
hibernate.connection.username = root
hibernate.connection.password = 654321
Arquivo log4j.properties
log4j.rootLogger=INFO, dest1
log4j.appender.dest1=org.apache.log4j.ConsoleAppender
log4j.appender.dest1.layout=org.apache.log4j.PatternLayout
log4j.appender.dest1.layout.ConversionPattern=%d %-5p %-5c{3} %x -> %m%n %x -> %m%n
Arquivo AmigoDAO.java
[code]
package teste.hibernate;
import java.util.List;
import net.sf.hibernate.*;
import net.sf.hibernate.cfg.Configuration;
public class AmigoDAO{
private SessionFactory factory;
public AmigoDAO() throws Exception{
factory = new Configuration().addClass(Amigo.class).buildSessionFactory();
}
public void insert(Amigo amigo) throws Exception{
Session session = factory.openSession();
session.save(amigo);
session.flush();
session.close();
}
public java.util.List getList(String condicao) throws Exception{
Session session = factory.openSession();
List amigos = session.find(condicao);
session.flush();
session.close();
return amigos;
}
public Amigo retrieve(String pk) throws Exception{
Session session = factory.openSession();
Amigo amigo = (Amigo)session.load(Amigo.class, pk);
session.flush();
session.close();
return amigo;
}
public void delete(Amigo amigo) throws Exception{
Session session = factory.openSession();
session.delete(amigo);
session.flush();
session.close();
}
} [/code]
8 - Arquivo TesteAmigo.java:
[code]
package teste.hibernate;
public class TesteAmigo {
public static void main(String[] args){
try {
Amigo amigo = new Amigo();
amigo.setNome("Márcio Robério");
amigo.setEndereco("Rua sem nome");
amigo.setTelefone("326-1234");
amigo.setCelular("8806-8779");
amigo.setEmail("roberio@ocodigo.com.br");
//amigo.setNascimento("data do tipo Date");
AmigoDAO dao = new AmigoDAO();
dao.insert(amigo);
} catch(Exception e) {
e.printStackTrace();//aqui vc vai saber que xabu é esse.
}
}
} [/code]
Após executar o teste, aparece a seguinte mensagem:
[color=red]
log4j:WARN No appenders could be found for logger (net.sf.hibernate.cfg.Environment).
log4j:WARN Please initialize the log4j system properly.
net.sf.hibernate.MappingException: Error reading resource: teste/hibernate/Amigo.hbm.xml
at net.sf.hibernate.cfg.Configuration.addClass(Configuration.java:357)
at teste.hibernate.AmigoDAO.(AmigoDAO.java:20)
at teste.hibernate.TesteAmigo.main(TesteAmigo.java:27)
Caused by: net.sf.hibernate.MappingException: persistent class [Amigo] not found
at net.sf.hibernate.cfg.Binder.bindClass(Binder.java:85)
at net.sf.hibernate.cfg.Binder.bindRootClass(Binder.java:222)
at net.sf.hibernate.cfg.Binder.bindRoot(Binder.java:1257)
at net.sf.hibernate.cfg.Configuration.add(Configuration.java:252)
at net.sf.hibernate.cfg.Configuration.addInputStream(Configuration.java:288)
at net.sf.hibernate.cfg.Configuration.addClass(Configuration.java:354)
… 2 more
Caused by: java.lang.ClassNotFoundException: Amigo
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:164)
at net.sf.hibernate.util.ReflectHelper.classForName(ReflectHelper.java:102)
at net.sf.hibernate.cfg.Binder.bindClass(Binder.java:82)
… 7 more
[/color]