terça-feira, 17 de abril de 2012

Utilização do Hibernate para Java - 2

No artigo anterior vimos como utilizar o Hibernate como camada de middleware entre a estrutura de classes do nosso programa Java e a representação das instâncias dessas classes numa base de dados.

O artigo anterior ilustrou o mapeamento entre uma classe Java e uma tabela da BD, nomeadamente a classe Book e a tabela com o mesmo nome.

Vamos hoje ver como mapear os relacionamentos entre classes, 1-para-N e N-para-N, para a base de dados.

Vamos começar por acrescentar ao nosso modelo (que apenas tinha a classe Book) duas novas classes:
     - BookCopy (Um Book contém a informação de um livro, e relaciona-se com vários BookCopy, que correspondem aos exemplares que uma biblioteca tem desse livro) --> relação 1-N.
     - Author (Um Book tem vários Author e vice-versa) --> relação N-N.


No projeto Java desenvolvido no post anterior, vamos começar por acrescentar a classe BookCopy e o respetivo ficheiro de mapeamento do Hibernate BookCopy.hbm.xml.

domingo, 15 de abril de 2012

Utilização do Hibernate para Java - 1


O Hibernate é um framework para o mapeamento objeto-relacional (object-relational mapping) para a linguagem Java. Facilita o mapeamento das classes, atributos e relacionamentos entre classes entre o modelo de classes de uma aplicação e a sua implementação numa BD relacional. Para definição dos mapeamentos são usados ficheiros XML ou anotações Java.
O Hibernate serve de middleware entre os objetos Java e a BD relacional.

Neste artigo, e no próximo, vamos usar a versão Hibernate 3 para ilustrar, com um pequeno exemplo, a utilização do Hibernate num programa Java.

Como sistema de BD vamos usar o Oracle 10g.

Para começar, temos que criar as tabelas da base de dados. No artigo Exemplo de Aplicação Java Swing com BD Oracle - 1 é explicado este processo.
Vamos, neste artigo, mapear apenas a classe BOOK.


 Depois, usando o Netbeans ou outro IDE para Java, criamos uma nova aplicação Java:


Criamos um package para as classes que correspondem às tabelas da BD e criamos a classe Book: