Boa tarde pessoal!
Sou iniciante em Java + Hibernate e estou tentando efetuar uma conexão do Hibernate com o Mysql utilizando como ferramenta o Eclipse.
Busquei muita informação antes de criar este post, mas com nenhum consegui sanar o problema. Antes de mais nada agradeço a ajuda de todos!
Construi o arquivo hibernate.cfg.xml e o salvei na pasta “src”, a classe Cliente com annotations no package “teste” e a classe Principal e a HibernateUtil, também no package “teste”, para efetuar um teste.
O erro lançado no console do Eclipse é:
Try HibernateUtil
log4j:WARN No appenders could be found for logger (org.hibernate.cfg.annotations.Version).
log4j:WARN Please initialize the log4j system properly.
Initial SessionFactory creation failed.java.lang.ExceptionInInitializerError
Exception in thread "main" java.lang.ExceptionInInitializerError
at teste.HibernateUtil.<clinit>(HibernateUtil.java:15)
at teste.dao.ClienteDAO.salvar(ClienteDAO.java:13)
at teste.Principal.main(Principal.java:16)
Caused by: java.lang.ExceptionInInitializerError
at org.hibernate.cfg.Configuration.reset(Configuration.java:174)
at org.hibernate.cfg.AnnotationConfiguration.reset(AnnotationConfiguration.java:223)
at org.hibernate.cfg.Configuration.<init>(Configuration.java:193)
at org.hibernate.cfg.Configuration.<init>(Configuration.java:197)
at org.hibernate.cfg.AnnotationConfiguration.<init>(AnnotationConfiguration.java:98)
at teste.HibernateUtil.<clinit>(HibernateUtil.java:11)
... 2 more
Caused by: java.lang.NullPointerException
at org.hibernate.util.ConfigHelper.getResourceAsStream(ConfigHelper.java:144)
at org.hibernate.cfg.Environment.<clinit>(Environment.java:529)
... 8 more
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="">
<property name="connection.driver_class">org.gjt.mm.mysql.Driver</property>
<property name="connection.url">jdbc:mysql://localhost/teste</property>
<property name="connection.username">root</property>
<property name="connection.password"></property>
<property name="connection.pool_size">1</property>
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="current_session_context_class">thread</property>
<property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property>
<property name="show_sql">true</property>
<mapping class="teste.Cliente"/>
</session-factory>
</hibernate-configuration>
Cliente.java
package teste;
import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table(name="cliente")
public class Cliente implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@Column(name="nome_cliente", nullable = false, length=60)
private String nome;
@Column(name = "idade", nullable = false, length = 5)
private Long idade;
public Cliente(){
}
public Long getId() {
return id;
}
private void setId(Long id) {
this.id = id;
}
public Long getIdade() {
return idade;
}
public void setIdade(Long idade) {
this.idade = idade;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
}
Principal.java
package teste;
import teste.dao.ClienteDAO;
public class Principal {
public static void main(String[] args) {
Cliente c1 = new Cliente();
c1.setNome("Cliente 1");
c1.setIdade(new Long(12));
Cliente c2 = new Cliente();
c2.setNome("cliente 2");
c2.setIdade(new Long(13));
ClienteDAO clienteDAO = new ClienteDAO();
clienteDAO.salvar(c1);
clienteDAO.salvar(c2);
}
}
HibernateUtil.java
package teste;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.AnnotationConfiguration;
public class HibernateUtil {
static final SessionFactory sessionFactory;
static {
try {
System.out.println("Try HibernateUtil");
AnnotationConfiguration configuration = new AnnotationConfiguration().configure("hibernate.cfg.xml");
sessionFactory = configuration.buildSessionFactory();
} catch (Throwable ex) {
System.err.println("Initial SessionFactory creation failed." + ex);
throw new ExceptionInInitializerError(ex);
}
}
public static SessionFactory getSessionFactory() {
return sessionFactory;
}
}
Obrigado pelo tempo de vocês!