[Dúvida] Criar tabelas usando Hibernate ( mySQL )

1 resposta
H

Olá pessoal.

Estou estudando Java + Hibernate , e venho encontrando algumas dificuldades para criar tabelas em um banco mySQL usando o próprio Hibernate.

Pelo o que eu entendi , podemos criar uma Classe qualquer como Entidades Persistentes [color=red]( @entity )[/color] , e o Hibernate pode "interpretar" esta classe e automaticamente criar uma tabela referente em meu banco de dados.
No caso eu ja fiz uma classe chamada Produtos, deixei ela como entidade e defini seu respectivo id e etc.

Minha dúvida é: Tendo em vista que minha classe está pronta, onde eu mecho para que o hibernate carregue esta classe e automaticamente crie a tabela em meu banco de dados ? Vi que é em um arquivo chamado hibernate.cfg.xml , mas não consigo sucesso,rsrs.
Quando eu tento executar a classe GeraTabelas ele não cria minha tabela.
Podem fazer uma checagem para mim ?

Abaixo deixo listado meus sources para uma melhor compreensão do meu problema.

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>
    <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
    <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
    <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/lojavirtual</property>
    <property name="hibernate.connection.username">root</property>
    <property name="hibernate.connection.password">root</property>
    <property name="hibernate.show_sql">true</property>
    <property name="hibernate.format_sql">true</property>

    <mapping class="loja.Produtos"/>

  </session-factory>
</hibernate-configuration>
Produtos.class
package loja;

import java.io.Serializable;
import javax.persistence.*;

@Entity
public class Produtos implements Serializable {
    @Id @GeneratedValue
    private Long id;

    @Column(name = "descricao", nullable = true, length = 50)
    private String descricao;
    private Double preco;
    private String nome;

    public Produtos() {
    }

    public String getDescricao() {
        return descricao;
    }

    public void setDescricao(String descricao) {
        this.descricao = descricao;
    }

    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 Double getPreco() {
        return preco;
    }

    public void setPreco(Double preco) {
        this.preco = preco;
    }



}
GeraTabelas.class
package Banco;

import loja.Produtos;
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 a classe Produto
        AnnotationConfiguration cfg = new AnnotationConfiguration();
        cfg.addAnnotatedClass(Produtos.class);
        new SchemaExport(cfg).create(true, true);
        cfg.configure();
    }
}

Eu não criei aqueles arquivos hbm.xml , é obrigatório ?

Muito obrigado pelo suporte amigos.
Abraços

1 Resposta

H

Vocês não vão acreditar Oo …
O animal de 6 patas aqui esqueceu de importar o Driver do MySQL :oops:
Acontece que eu estava mechendo em outro projeto que estava com o driver, dai estava dando erros e resolvi criar outro projeto,foi onde eu me esqueci, rsrs.

Peço desculpas pelo incômodo.
Mas e ai, fiz as coisas certas nos sources acima ou devo modificar algo ?

Abraços

Criado 13 de maio de 2009
Ultima resposta 13 de mai. de 2009
Respostas 1
Participantes 1