Olá,
Sou iniciante em Java e estou tentando fazer uma conexão persistente usando Hibernate mas está dando a mensagem de erro abaixo e não estou sabendo resolver. Segue o XML e as duas classes.
ERRO:
195 [main] WARN org.hibernate.util.DTDEntityResolver - recognized obsolete hibernate namespace http://hibernate.sourceforge.net/. Use namespace http://www.hibernate.org/dtd/ instead. Refer to Hibernate 3.6 Migration Guide!
209 [main] ERROR org.hibernate.util.XMLHelper - Error parsing XML: hibernate.cfg.xml(5) O elemento-raiz do documento “hibernate-mapping” deve corresponder à raiz de DOCTYPE “hibernate-configuration”.
209 [main] ERROR org.hibernate.util.XMLHelper - Error parsing XML: hibernate.cfg.xml(5) O tipo de elemento “hibernate-mapping” deve ser declarado.
219 [main] ERROR org.hibernate.util.XMLHelper - Error parsing XML: hibernate.cfg.xml(6) O tipo de elemento “hibernate-mapping” deve ser declarado.
223 [main] ERROR org.hibernate.util.XMLHelper - Error parsing XML: hibernate.cfg.xml(26) As estruturas do documento XML devem começar e terminar com a mesma entidade.
Exception in thread “main” Criação inicial do objeto SessionFactory falhou. Erro: org.hibernate.HibernateException: Could not parse configuration: hibernate.cfg.xml
java.lang.NullPointerException
at com.livro.capitulo3.conexao.ConectaHibernateMySQL.main(ConectaHibernateMySQL.java:12)
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-mapping package="org.hibernate.tutorial.domain">
<hibernate-configuration>
<session-factory>
<property name="dialect">org.hibernate.dialect.MySQL5InnoDBDialect</property>
<!-- <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="connection.url">jdbc:mysql://localhost:3306/agenda</property>
<property name="connection.username">root</property>
<property name="connection.password">gaba1746</property>-->
<property name="current_session_context_class">thread</property>
<!-- Usando as configurações do C3PO para pool de conexões -->
<property name="c3po.min_size">5</property>
<property name="c3po.max_size">20</property>
<property name="c3po.timeout">300</property>
<property name="c3po.max_statements">50</property>
<property name="c3po.idle_test_period">3000</property>
<!-- Configurações de Debug -->
<property name="show_sql">true</property>
<property name="format_sql">true</property>
<property name="generate_statistics">true</property>
<property name="use_sql_comments">true</property>
</session-factory>
</hibernate-configuration>
package com.livro.capitulo3.conexao;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
public class HibernateUtil {
private static final SessionFactory sessionFactory = builSessionFactory();
private static SessionFactory builSessionFactory() {
try {
Configuration cfg = new Configuration();
cfg.configure("hibernate.cfg.xml");
return cfg.buildSessionFactory();
} catch (Throwable e) {
System.out.println("Criação inicial do objeto SessionFactory falhou. Erro: "+ e);
throw new ExceptionInInitializerError(e);
}
}
public static SessionFactory getSessionFactory() {
return sessionFactory;
}
}
package com.livro.capitulo3.conexao;
import org.hibernate.Session;
public class ConectaHibernateMySQL {
public static void main(String[] args) {
Session sessao = null;
try {
sessao = HibernateUtil.getSessionFactory().openSession();
System.out.println("Conectou!");
} finally {
sessao.close();
}
}
}
Obrigado,
Marcos.