Hibernate - PASSO A PASSO - SOCORRO!

4 respostas
Igor_Novaes

Meus caros colegas.

Pelo amor de Jesus Cristo…alguém conhece alguma apostila de Hibernate que tenha um passo a passo
didático no qual eu consiga completar um exemplo básico por inteiro.
Todas as possíveis que eu peguei em tudo que foi lugar não conseguem apresentar um passo a passo de um simples exemplo.
Sempre falta alguma coisa na explicação e eu fico sem saber que diabos fazer pra desvendar o mistério.

Eu já entendi toda a arquitetura deste bendito Hibernate mas eu não consigo completar sequer um exemplo.

 peguei material de:

JEEBrasill;

Guj;

Caelum - FJ21;

Tutoriais em PDF em outros locais;

Resumindo eu estou pra desistir literalmente…

Fico imensamente grato pela ajuda desta forte e tão unida comunidade.

Um abraço a todos.

4 Respostas

leandro.anjos

Boa noite, Igor.

Realmente, muitas vezes seguir um tutorial ou uma apostila de algum framework pode não ser tão simples como deveria ser, eu mesmo tive alguma dificuldade ao aprender a utilizar o framework VRaptor(principalmente pois na época a unica referencia era o site e a apostila da Caelum), porém aconselho vc a não desistir, pois a principal função do Hibernate é a PERSISTÊNCIA(opz, desculpas pela brincadeira, mas eu não poderia deixar passar essa).

Agora falando sério, quando estava aprendendo Hibernate utilizei a apostila da Caelum, não lembro de ter tido dificuldades porém muito provavelmente ela deve ter sido atualizada.

Segue abaixo o link de uma apostila bem simples e que de brinde também ensina Annotations.

http://www.marvinlemos.net/download/arquivo/118/hibernate_annotation.pdf

Um ultimo conselho seria, que antes de tentar trocar de apostila tente nos enviar as possiveis duvidas ou erros que possam surgir durante o seu aprendizado para que possamos ajudar.

Igor_Novaes

Leandro...Blz?

Olha só...eu to estudadndo esse material que vc me enviou, que por sinal é muito bom, só que tá dando um errinho no meu projeto.....no primeiro exercicio que cria o metodo save().
Queria um help seu pra que eu consiga evoluir nesse passo...
Minhas classes e arquivos são:

HibernateUtil.java;
Cliente.java;
ClienteDAO;
Principal.java;
hibernate.cfg.xml;

[img]http://br.geocities.com/igor.novaes/projeto.bmp[/img]

segue abaixo as classes e o erro:

HibernateUtil.java

package teste;

import org.hibernate.SessionFactory;
import org.hibernate.cfg.AnnotationConfiguration;

public class HibernateUtil {
	 private static final SessionFactory sessionFactory;
	 static {
	  	try {
		// Create the SessionFactory from hibernate.cfg.xml
		sessionFactory = new AnnotationConfiguration().configure().buildSessionFactory();
		} catch (Throwable ex) {
		// Make sure you log the exception, as it might be swallowed
		System.err.println("Initial SessionFactory creation failed." + ex);
		throw new ExceptionInInitializerError(ex);
		}
	}
	public static SessionFactory getSessionFactory() {
		return sessionFactory;
	}
}

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(){
		super();
	}
	public Long getId() {
		return id;
	}
	public void setId(Long id) {
		this.id = id;
	}
	public String getNome() {
		return nome;
	}
	public void setNome(String nome) {
		this.nome = nome;
	}
	public Long getIdade() {
		return idade;
	}
	public void setIdade(Long idade) {
		this.idade = idade;
	}
}

ClienteDAO;

package teste.dao;

import org.hibernate.Session;

import teste.Cliente;
import teste.HibernateUtil;

public class ClienteDAO {
	private Session session;
	
	public ClienteDAO(){
	}
	
	public void salvar(Cliente cli){
		session = HibernateUtil.getSessionFactory().getCurrentSession();
		session.beginTransaction();
		session.save(cli);
		session.getTransaction().commit();
	}
}
Principal.java
package teste;

import teste.dao.ClienteDAO;

public class Principal {
	
	public static void main (String[] args){
		Cliente c1 = new Cliente();
		c1.setNome("Raul Seixas");
		c1.setIdade(new Long(12));

		Cliente c2 = new Cliente();
		c2.setNome("Raul Seixas");
		c2.setIdade(new Long(13));
		
		ClienteDAO clienteDAO = new ClienteDAO();
		clienteDAO.salvar(c1);
		clienteDAO.salvar(c2);
	}
}
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>
		<!-- Database connection settings -->
		<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
		<property name="connection.url">jdbc:mysql://localhost/teste</property>
		<property name="connection.username">root</property>
		<property name="connection.password">igor</property>

		<!-- JDBC connection pool (use the built-in) -->
		<property name="connection.pool_size">1</property>

		<!-- SQL dialect -->
		<property name="dialect">org.hibernate.dialect.HSQLDialect</property>

		<!-- Enable Hibernate's automatic session context management -->
		<property name="current_session_context_class">thread</property>

		<!-- Disable the second-level cache -->
		<property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property>

		<!-- Echo all executed SQL to stdout -->
		<property name="show_sql">true</property>
		
		<mapping class="teste.Cliente"/>
	</session-factory>
</hibernate-configuration>

erro no console do eclipse:

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.org.hibernate.HibernateException: /hibernate.cfg.xml not found
G

Igor,

Também sou novo no Hibernate, mas acho que posso ajudar…
O método buildSessionFactory() busca pelo arquivo de configuração hibernate.cfg.xml, neste caso, ele está tentando buscar este arquivo um diretório acima do diretório da classe que está chamando o buildSessionFactory, ou seja:

Sua classe HibernateUtil está no diretório src/teste/ e o buildSessionFactory está buscando pelo arquivo de configuração do hibernate (hibernate.cfg.xml) no diretório src, onde provavelmente este arquivo não se encontra.

A solução que conheço, até o momento, é deixar este arquivo de configuração dentro do diretório src.

Talvez tenha como configurar algum arquivo para direcionar onde vc quer que o buildSessionFactory busque o hibernate.cfg.xml.

Espero ter ajudado.

ClaudioRamone

Alguem sabe onde tem um novo link para a apostila citada acima? o link esta fora do ar …estou iniciando em hibernate, estou tendo dificildades em compreensao e funcionalidades e gostaria de algo passo a passo e esta apostila me parece ser bem bacana, estou seguindo video aulas da devmedia para hibernate mas ele cria a classe usuario,venda e produto alem das DAO o hibernate util e 2 interfaces td de uma vez antes de mostrar resultados e qdo da o erro ai não sabe oq é nem de onde veio…ao inves de ir demonstrando aos poucos para entender melhor oq cada coisa faz…tipo criar tudo do usuario e mostrar o resultado…tudo do produto… bom qem puder ajudar na apostila agradeço

Criado 29 de agosto de 2008
Ultima resposta 23 de mai. de 2011
Respostas 4
Participantes 4