Conexão MySQL + Hibernate

5 respostas
M

Boa tarde amigos, estou tentando implementar um código, mas na hora de executar lança o seguinte erro. Peço que quem puder me ajudar que poste um comentário.

0 [main] INFO  org.hibernate.cfg.Environment - Hibernate 3.5.5-Final
5 [main] INFO  org.hibernate.cfg.Environment - hibernate.properties not found
11 [main] INFO  org.hibernate.cfg.Environment - Bytecode provider name : javassist
18 [main] INFO  org.hibernate.cfg.Environment - using JDK 1.4 java.sql.Timestamp handling
219 [main] INFO  org.hibernate.cfg.Configuration - configuring from resource: hibernate.cfg.xml
219 [main] INFO  org.hibernate.cfg.Configuration - Configuration resource: hibernate.cfg.xml
397 [main] INFO  org.hibernate.cfg.Configuration - Reading mappings from resource : com/livro/capitulo3/crudxml/Contato.hbm.xml
523 [main] INFO  org.hibernate.cfg.HbmBinder - Mapping class: com.livro.capitulo3.crudxml.Contato -> contato
Criação inicial do objeto Fabrica de conexão falhou: org.hibernate.InvalidMappingException: Could not parse mapping document from resource com/livro/capitulo3/crudxml/Contato.hbm.xml
Erro ao fechar operação de inserção: null
Exception in thread "main" java.lang.ExceptionInInitializerError
	at com.livro.capitulo3.conexao.HibernateUtil.construirFabricaSessao(HibernateUtil.java:21)
	at com.livro.capitulo3.conexao.HibernateUtil.<clinit>(HibernateUtil.java:9)
	at com.livro.capitulo3.crudxml.ContatoCrudXML.salvar(ContatoCrudXML.java:18)
	at com.livro.capitulo3.crudxml.ContatoCrudXML.main(ContatoCrudXML.java:54)

5 Respostas

M

Segue os fontes:

package com.livro.capitulo3.crudxml;

import java.sql.Date;

public class Contato {
	private String nomeLivro;
	private String autor;
	private String editora;
	private Date dataCadastro;
	private String vendedor;
	private String observacao;

	public String getNomeLivro() {
		return nomeLivro;
	}

	public void setNomeLivro(String nomeLivro) {
		this.nomeLivro = nomeLivro;
	}

	public String getAutor() {
		return autor;
	}

	public void setAutor(String autor) {
		this.autor = autor;
	}

	public String getEditora() {
		return editora;
	}

	public void setEditora(String editora) {
		this.editora = editora;
	}

	public Date getDataCadastro() {
		return dataCadastro;
	}

	public void setDataCadastro(Date dataCadastro) {
		this.dataCadastro = dataCadastro;
	}

	public String getVendedor() {
		return vendedor;
	}

	public void setVendedor(String vendedor) {
		this.vendedor = vendedor;
	}

	public String getObservacao() {
		return observacao;
	}

	public void setObservacao(String observacao) {
		this.observacao = observacao;
	}

}
M
package com.livro.capitulo3.crudxml;

import java.sql.Date;

import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.Transaction;

import com.livro.capitulo3.conexao.HibernateUtil;

public class ContatoCrudXML {
	public void salvar(Contato contato) {
		Session sessao = null;
		Transaction transacao = null;
		try {
			sessao = HibernateUtil.pegaSessaoFabrica().openSession();
			transacao = sessao.beginTransaction();
			sessao.save(contato);
			transacao.commit();

		} catch (HibernateException e) {
			System.out.println("Não foi possivel inserir o contato. Erro: "
					+ e.getMessage());
		} finally {
			try {
				sessao.close();

			} catch (Throwable e) {
				System.out.println("Erro ao fechar operação de inserção: "
						+ e.getMessage());
			}
		}
	}

	public static void main(String[] args) {
		ContatoCrudXML contatoCrudXML = new ContatoCrudXML();
		String[] autores = { "CAÇADOR DE PIPAS, O", "GUERRA DOS TRONOS",
				"OCEANO PERDIDO" };
		String[] livros = { "ALGUSTO CURY", "CLÁUDIO JOSÉ", "CICLANO DOS ANJOS" };
		String[] editoras = { "SEXTANTE", "INTRINSECA", "RECORD" };
		String[] vendedores = { "MARCOS", "MAYSA", "JOSE" };
		String[] observacoes = { "LIVRO TÉCNICO", "OUTRAS EDITORAS",
				"ADOTADO CURSINHO" };

		Contato contato = null;
		for (int i = 0; i < autores.length; i++) {
			contato = new Contato();
			contato.setNomeLivro(livros[i]);
			contato.setAutor(autores[i]);
			contato.setEditora(editoras[i]);
			contato.setDataCadastro(new Date(System.currentTimeMillis()));
			contato.setVendedor(vendedores[i]);
			contato.setObservacao(observacoes[i]);

			contatoCrudXML.salvar(contato);
		}
		System.out.println("Contatos cadastrados");

	}

}

identar texto pre-formatado em 4 espaços

M
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="com.livro.capitulo3.crudxml">
  <class name="Contato" table="contato">
    <id name="codigo" column="codigo">
      <generator class="increment"/>
    </id>
    <property name="nomeLivro" column="nome"/>  
    <property name="autor"/> 
    <property name="editora"/>
    <property name="dataCadastro" type="date" column="dt_cad"/>
    <property name="vendedor"/>
    <property name="observacao" type="string" column="obs"/>

  </class>
</hibernate-mapping>
M
<?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>
   
    <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/agenda</property>
    <property name="connection.username">root</property>
    <property name="connection.password">masterkey</property>
    
    <property name="hibernate.connection.pool_size">10</property>
    <property name="show_sql">true</property>
    <property name="hibernate.hbm2ddl.auto">create</property>
    
<mapping resource="com/livro/capitulo3/crudxml/Contato.hbm.xml"/>       
    
  </session-factory>  
</hibernate-configuration>
L

Esse livro me ajudou muito. http://compre.vc/s/509d30d5 Ele vai responder essa duvidas e as futuras tambem, da uma olhada

Criado 24 de outubro de 2016
Ultima resposta 25 de out. de 2016
Respostas 5
Participantes 2