Banco de dados e Hibernate - duvidas para elaborar o banco de dados

3 respostas
D

Pessoal, estou começando a desenvolver um sistema com hibernate. Surgiu a 1ª dúvida, meu banco de dados é Mysql. Como eu faço as tabelas, digo no sentido de relacionamento… faço todos os relacionamentos no meu BD?

3 Respostas

lele_vader

Você deve anotar nas suas classes de entidade ou através de um arquivo NomedaEntidade.hbm.xml que o hibernate irá popular as tabelas.

Além disso deve configurar o seu banco de dados no arquivo hibernate.properties ou hibernate.cfg.xml

a propriedade hibernate.hbm2ddl.auto

create-drop

Com essa opção cada vez que você rodar o programa o hibernate irá dropar as suas tabelas e irá criá-las de novo. Outra opção é update, que irá alterar o seu banco somente se você alterar o mapeamento.

Com relação a relacionamentos o hibernate permite que você especifique os relacionamentos.

Segue um exemplo de arquivo de configuração do hibernate.

<?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://colocar a url de conexão</property>  
        <property name="hibernate.connection.username">colocar nome de usuario</property>  
        <property name="hibernate.connection.password">colocar senha do banco</property>  
        <property name="hibernate.hbm2ddl.auto">create-drop</property>  
      
        <mapping class="nome das classes que serão mapeadas, incluindo o pacote. Usar isso se você for usar mapeamento por anotação" />  
      </session-factory>  
    </hibernate-configuration>

Agora a classe de entidade ganha as seguintes anotações, por exemplo.

@Entity
@Table
public class Usuario implements Serializable{

  @Id  
  @GeneratedValue(strategy=GenerationType.IDENTITY)  
  private long id;

  @Column
  private String nome;  
  @Column
  private double preco;  
  @Column
   private int quantidade;  

   //get's e set's omitidos.
}
D

-Ok, então eu devo fazer as tabelas e seus respectivos relacionamentos… é isso ?

-O que é mais facíl e mais usado geralmente?

Obrigado.

lele_vader

Não.
Anota lá no hibernate que ele cria os campos. Mas o banco precisa existir.
Eu gosto de usar as anotações, mas você pode também criar por xml.

Além disso você pode usar o hibernate como provider jpa, o que deixaria a aplicação independente de solução de persistência.

Lembrando que a última versão é a 4 e o DTD que eu passei é a 3. Então terá que mudar, além de alguns códigos mudarem em relação a versão 3.

Criado 2 de maio de 2012
Ultima resposta 2 de mai. de 2012
Respostas 3
Participantes 2