Hibernate Apostila Caelum

15 respostas
R

Boa Tarde

Pessoal comecei a estudar hibernate atraves da apostila do caelum e estou tento algumas dificuldades logo no primeiro exemplo, criei a pasta lib como pede e joguei todos os jars dos hibernate-distribution-3.3.2.GA e hibernate-annotations-3.4.0.GA depois criei o arquivo hibernate.properties e depois as classes Produto.java e GeraTabela.java mais está dando esse erro.
Se alguem puder me ajudar eu agradeço.

22/07/2009 16:12:40 org.hibernate.cfg.annotations.Version <clinit>
INFO: Hibernate Annotations 3.4.0.GA
log4j:WARN No appenders could be found for logger (org.hibernate.cfg.Environment).
log4j:WARN Please initialize the log4j system properly.
22/07/2009 16:12:40 org.hibernate.annotations.common.Version <clinit>
INFO: Hibernate Commons Annotations 3.1.0.GA
22/07/2009 16:12:40 org.hibernate.cfg.AnnotationConfiguration secondPassCompile
INFO: Hibernate Validator not found: ignoring
hibernate.properties
hibernate.dialect = org.hibernate.dialect.FirebirdDialect
hibernate.connection.driver_class = org.firebirdsql.jdbc.FBDriver 
hibernate.connection.url = jdbc:firebirdsql:localhost/3051:C:/workspace/struts-teste/jdbc/teste.FDB
hibernate.connection.username = SYSDBA
hibernate.connection.password = masterkey

hibernate.show_sql = true
hibernate.format_sql = true

15 Respostas

E

cara, posta ai a classe que ta criando a conexão.

flw

R

Boa Tarde.

Essa é minha classe que cria a conexão mais a apostila não falou nada ainda da classe de conexão nem da minha classe Dao.

package br.com.caelum.jdbc;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;

import javax.swing.JOptionPane;

public class ConnectionFactory {

	public Connection conexao;
	String usuario;
	String senha;
	String url;

	public ConnectionFactory() {

		// inicialização das variaveis de instancia
		usuario = "Sysdba";
		senha = "masterkey";
		url = "127.0.0.1/3051:C:/workspace/struts-teste/jdbc/TESTE.FDB";

		try {
			// inicializa o driver de conexão do firebird, levanta o driver na
			// maquina virtual que se encontra na jaybird
			Class.forName("org.firebirdsql.jdbc.FBDriver");
			System.out.println("Conectando ao banco");
		} catch (ClassNotFoundException ex) {
			JOptionPane.showMessageDialog(null, ex.getMessage(),
					"Erro de Conexão BEM AQUI NÃO TA VENDO",
					JOptionPane.ERROR_MESSAGE);
		}

		try {
			// gerenciador de drive para manipular o driver de conexão
			conexao = DriverManager.getConnection("jdbc:firebirdsql:" + url,
					usuario, senha);
			System.out.println("Conexão Realizada com Sucesso");
		} catch (SQLException ex) {
			JOptionPane.showMessageDialog(null, ex.getMessage(),
					"Erro de Conexão", JOptionPane.ERROR_MESSAGE);
		}
	}

	public static void main(String[] args) {
		ConnectionFactory obj = new ConnectionFactory();
	}
}
mvlaran

RenatoSfi, desculpe cara, mas eu não entendi exatamente qual é o erro que vc está tendo…

:oops:

makarioszen

não consegui entender se o que você postou é um erro realmente, ali só deu pra ver INFO’s e WARN’s, que não são causa de uma aplicação não rodar;

mas de qualquer forma algumas dicas:

porta padrão do firebird: 3050 (vefirica se tá certo no seu SO)
dependencias do hibernate: na página de download do hibernate tem uma tabela de compatibilidade entre as dependencias, vê se está tudo certinho

rdgms

Isso não é Hibernate é JDBC puro…

E

Cara, tu t amisturando um pouco as coisas rsrs …

no hibernate vc não usa esse “Class.forName(“org.firebirdsql.jdbc.FBDriver”);”.

faz assim :

na classe bean vc tem que anotar a classe com @Entity e ter um atributo com @Id;

ai vc faz nesse teu metodo main:

AnnotationConfiguration cfg = new AnnotationConfiguration();
cfg.addAnnotatedClass(NomeDaSuaClasseBean.class);
SessionFacory f = cfg.buildSessionFactory();
Session session = f.openSession()

apartir dai vc pode usar a session para fazer o qe quiser (salvar, excluir etc…)

mvlaran

Concordo com egamorim.

O que eu fiz, e pra mim é o ideal é que deixe de lado o que vc tem em jdbc e faça do zero com hibernate. Acho que você irá ganhar muito (em aprendizado) visualizando o “de-para” entre as duas coisas…

:wink:

R

Boa Tarde.

Pessoal foi o que eu fiz seguindo a apostila do caelum eu fiz o GeraTabela e o Produto.java e na apostila diz que vai gerar uma tabela com os dados e no meu não gerou e deu so o Warn e o INFO.

package br.com.caelum.hibernate;

import org.hibernate.cfg.AnnotationConfiguration;
import org.hibernate.tool.hbm2ddl.SchemaExport;


public class GeraTabelas {
	
	public static void main(String[] args){
		
		//cria uma configuração para para a classe produto
		AnnotationConfiguration cfg = new AnnotationConfiguration();
		// Adiciona a classe Produto
		cfg.addAnnotatedClass(Produto.class);
		//cfg.configure(); 
		new SchemaExport(cfg).create(true, false);
		
	}
	
}
package br.com.caelum.hibernate;

import javax.persistence.GeneratedValue;
import javax.persistence.Id;

import org.hibernate.annotations.Entity;


@Entity
public class Produto {
	
	@Id
	@GeneratedValue
	private Long id;
	private String nome;
	private String descricao;
	private Double preco;
	
	
	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 String getDescricao() {
		return descricao;
	}
	public void setDescricao(String descricao) {
		this.descricao = descricao;
	}
	public Double getPreco() {
		return preco;
	}
	public void setPreco(Double preco) {
		this.preco = preco;
	}
	
	
	
	
}
E

nessa parte coloca (true,true), o segundo argumento diz se é pra gerar a tabela ou não.

new SchemaExport(cfg).create(true, false);

posta tbm td que aparece no console depois que executa

R

Boa Tarde.

Apareceu as mesmas mensagens, o que será que deve estar faltando?.

22/07/2009 17:21:06 org.hibernate.cfg.annotations.Version <clinit>
INFO: Hibernate Annotations 3.4.0.GA
log4j:WARN No appenders could be found for logger (org.hibernate.cfg.Environment).
log4j:WARN Please initialize the log4j system properly.
22/07/2009 17:21:06 org.hibernate.annotations.common.Version <clinit>
INFO: Hibernate Commons Annotations 3.1.0.GA
22/07/2009 17:21:06 org.hibernate.cfg.AnnotationConfiguration secondPassCompile
INFO: Hibernate Validator not found: ignoring
E

posta uma lista com os jars que vc adicionou.
pergunta: vc adicionou no classpath ?

R

Boa Tarde.

Eu colocei todos os jars que estão dentro das pasta dos hibernates hibernate-annotations-3.4.0.GA e hibernate-distribution-3.3.2.GA. No classpath não adicionei nada, onde adiciono e o que no classpath?

E

no eclipse:

Botão direito no projeto – Build Path – Configure Build Path – libraries – Add jars
ai vc escolhe os jars e clica em ok.

eu falei pra vc postar a lista pra que agente possa ver se faltou algum, isso ja aconteceu comigo. ;D

IronJavaMan

Cara olha só vc misturou JDBC com Hibernate, faz assim tenta seguir o exemplo em JDBC e procura saber como ele funciona por trás da aplicação, depois vc faz o mesmo exemplo usando Hibernate, que ai vc vai ver como as coisas ficam mais fácies, e o aprendizando sobre o erros é mais apurado. Por que só fazer como está na apostila não vai te ensinar de verdade, por que o diferencial é saber como rodam as coisa internamente ai vc é o “cara”. Valew.

R

Boa Tarde.

Segue a imagem de todos os jars que foram adicionados.

Iron valeu pela dica mais só confundi um pouco a pergunta, pois seu como funciona o JDBC pois fazia aplicativos para desktop, agora estou passando para internet já vi um pouco de struts agora estou vendo como funciona hibernate.


Criado 22 de julho de 2009
Ultima resposta 22 de jul. de 2009
Respostas 15
Participantes 6