Num artigo anterior criámos, no NetBeans, um projeto para acesso a uma BD ORACLE utilizando a Java Persistence API (JPA).
Entre esse e este artigo tivemos ainda tempo para resolver o problema da gestão de atribuição de chaves primárias no JPA sobre ORACLE.
Vamos, aqui, criar um projeto uma camada acima do anterior, que fornecerá para uma outra camada, de apresentação ou user interface, acima, um conjunto de serviços de lógica de negócio.
A camada de lógica de negócio aqui apresentada é apenas um exemplo possível. O objetivo é concentrar nesta camada os métodos que usam o JPA, de forma a libertar a camada acima (User Interface) desse conhecimento.
Começamos por criar um novo projeto de tipo Java Class Library, tal como anteriormente, e teremos que adicionar às suas Libraries, o projeto DAL feito no artigo anterior.
Depois, criamos uma classe de apoio, BLLEntityManager.java, para nos fornecer o EntityManager (singleton), e iniciar alterações a objetos geridos (instâncias de JPA Entities já armazenadas na BD).
Unidades Curriculares apoiadas por este Blog (ESTG-IPVC)
Mostrar mensagens com a etiqueta Hibernate. Mostrar todas as mensagens
Mostrar mensagens com a etiqueta Hibernate. Mostrar todas as mensagens
quarta-feira, 11 de março de 2015
Exemplo de utilização do Java Persistence API - 2
Etiquetas:
Acesso à BD,
Ferramentas ORM,
Hibernate,
Java,
Java EE,
Java Persistence API
Gestão de atribuição de chaves primárias - ORACLE / JPA
No artigo anterior, usámos o JPA para criar uma camada de acesso a uma BD ORACLE.
A BD ORACLE, cuja criação foi tratada em "Exemplo de Aplicação Java Swing com BD Oracle - 1", usa sequências e triggers para atribuição automática da chave em cada tabela.
O JPA permite-nos fazer operações sobre a BD (criar, alterar, apagar ou selecionar registos das tabelas). No entanto, quando queremos fazer várias operações relacionadas, e precisamos de saber que chave foi atribuída pela BD a um dado registo criado anteriormente, cujo objeto ainda temos em memória, não temos maneira segura de conhecer o valor dessa chave. E, o objeto que ainda temos em memória permanece sem o valor da chave nos seus atributos, fazendo com que o JPA considere que essa instância não é gerida por si. Isto, impede-nos de usar essa instância para operações subsequentes com a BD.
O ORACLE, tipicamente usa sequências para atribuição de valores de chave primária nas suas tabelas.
A utilização dessas sequências na atribuição da chave primária pode fazer-se definindo um default value para a coluna respetiva, ou criando um trigger before insert o qual obtém o valor seguinte da sequência e o atribui à coluna da chave primária da tabela.
A BD ORACLE, cuja criação foi tratada em "Exemplo de Aplicação Java Swing com BD Oracle - 1", usa sequências e triggers para atribuição automática da chave em cada tabela.
O JPA permite-nos fazer operações sobre a BD (criar, alterar, apagar ou selecionar registos das tabelas). No entanto, quando queremos fazer várias operações relacionadas, e precisamos de saber que chave foi atribuída pela BD a um dado registo criado anteriormente, cujo objeto ainda temos em memória, não temos maneira segura de conhecer o valor dessa chave. E, o objeto que ainda temos em memória permanece sem o valor da chave nos seus atributos, fazendo com que o JPA considere que essa instância não é gerida por si. Isto, impede-nos de usar essa instância para operações subsequentes com a BD.
O ORACLE, tipicamente usa sequências para atribuição de valores de chave primária nas suas tabelas.
A utilização dessas sequências na atribuição da chave primária pode fazer-se definindo um default value para a coluna respetiva, ou criando um trigger before insert o qual obtém o valor seguinte da sequência e o atribui à coluna da chave primária da tabela.
Etiquetas:
Acesso à BD,
Ferramentas ORM,
Hibernate,
Java,
Java EE,
Java Persistence API,
Oracle
domingo, 8 de março de 2015
Exemplo de utilização do Java Persistence API - 1
Neste artigo vamos criar um projeto Java Class Library, usando o NetBeans, para acesso a uma BD ORACLE, usando o Java Persistence API (JPA).
Para criar a BD ORACLE pode seguir-se, por exemplo, este artigo.
No NetBeans, criamos um novo projeto de tipo "Java Class Library":
Atribuimos um nome ao projeto:
O nosso novo projeto aparecerá como se segue, na janela de visualização de projetos do NetBeans:
Depois, queremos criar as classes Entidade a partir das tabelas já criadas na nossa base de dados ORACLE. Acedemos a New File --> Other e selecionamos, na categoria Persistence, o tipo de ficheiro "Entity Classes from Database":
Para criar a BD ORACLE pode seguir-se, por exemplo, este artigo.
No NetBeans, criamos um novo projeto de tipo "Java Class Library":
Atribuimos um nome ao projeto:
O nosso novo projeto aparecerá como se segue, na janela de visualização de projetos do NetBeans:
Depois, queremos criar as classes Entidade a partir das tabelas já criadas na nossa base de dados ORACLE. Acedemos a New File --> Other e selecionamos, na categoria Persistence, o tipo de ficheiro "Entity Classes from Database":
Etiquetas:
Acesso à BD,
Ferramentas ORM,
Hibernate,
Java,
Java EE,
Java Persistence API
terça-feira, 26 de novembro de 2013
Formulário de Edição em Spring Web MVC com o NetBeans IDE
Nos artigos anteriores:
vimos como usar o Hibernate e a framework Spring Web MVC para listar dados da BD numa página Web, obedecendo a uma arquitetura Model-View-Controller.
Usámos o NetBeans para o nosso projeto e, portanto, fizemos por utilizar os "wizards" disponibilizados por este para criar o controller para fazer o nosso exemplo de listagem de Livros.
Para a criação de uma página de formulário (form), o NetBeans também nos fornece um "wizard" que cria uma classe descendente de SimpleFormController... Esta classe, no entanto, caiu em desuso (deprecated) e, apesar dos meus esforços para a usar no exemplo de Form que quero aqui criar, isso não foi possível por, no final, o evento submit não ocorrer como esperado pela framework, ou o event handler onSubmit não ser, por alguma razão, despoletado.
Alguns exemplos de utilização do SimpleFormController são:
Há males que vêm por bem, e os problemas com o SimpleFormController levam-me a fazer o exemplo de hoje usando um Controller baseado em anotações, como estabelecido pelas versões mais recentes da framework Spring.
Assim, pegando no exemplo anterior, queremos criar um Form para edição de Livro (Book), guardar o livro na BD, e terminar com um ecrã de confirmação de gravação. E queremos colocar o form acessível da nossa página inicial.
Usámos o NetBeans para o nosso projeto e, portanto, fizemos por utilizar os "wizards" disponibilizados por este para criar o controller para fazer o nosso exemplo de listagem de Livros.
Para a criação de uma página de formulário (form), o NetBeans também nos fornece um "wizard" que cria uma classe descendente de SimpleFormController... Esta classe, no entanto, caiu em desuso (deprecated) e, apesar dos meus esforços para a usar no exemplo de Form que quero aqui criar, isso não foi possível por, no final, o evento submit não ocorrer como esperado pela framework, ou o event handler onSubmit não ser, por alguma razão, despoletado.
Alguns exemplos de utilização do SimpleFormController são:
- http://www.dzone.com/tutorials/java/spring/spring-simple-form-controller-1.html
- http://thecafetechno.com/tutorials/spring/use-of-simpleformcontroller-spring-mvc/2/
- http://www.mkyong.com/spring-mvc/spring-mvc-form-handling-example/
Há males que vêm por bem, e os problemas com o SimpleFormController levam-me a fazer o exemplo de hoje usando um Controller baseado em anotações, como estabelecido pelas versões mais recentes da framework Spring.
Assim, pegando no exemplo anterior, queremos criar um Form para edição de Livro (Book), guardar o livro na BD, e terminar com um ecrã de confirmação de gravação. E queremos colocar o form acessível da nossa página inicial.
Etiquetas:
Hibernate,
Java,
MVC,
Net Beans,
SpringWebMVC
sábado, 2 de novembro de 2013
Primeiro Exemplo de Aplicação Spring Web MVC com o NetBeans IDE - 3
No artigo anterior fizemos o nosso primeiro Controller que devolveu uma View e os dados do Model que queriamos usar na view.
Artigos anteriores:
- Primeiro Exemplo de Aplicação Spring Web MVC com o NetBeans IDE - 1
Artigos anteriores:
- Primeiro Exemplo de Aplicação Spring Web MVC com o NetBeans IDE - 1
- Primeiro Exemplo de Aplicação Spring Web MVC com o NetBeans IDE - 2
Neste artigo vamos usar o Hibernate para a camada Model, o que nos permite obter dados de uma base de dados e os passar a uma view para os listar no browser.
A camada model de este projeto Spring Web MVC é exatamente a mesma que foi usada no projeto Struts. Ver artigos:
E, o nosso objetivo aqui, neste artigo, é fazer em Spring Web MVC, o que fizémos no artigo 3 referido acima, em Struts.
Assim, para este exemplo, que é construido sobre o do artigo anterior, queremos criar a classe Book.java e o respetivo ficheiro de mapeamento do Hibernate hibernateBook.hbm.xml.
A camada model de este projeto Spring Web MVC é exatamente a mesma que foi usada no projeto Struts. Ver artigos:
Assim, para este exemplo, que é construido sobre o do artigo anterior, queremos criar a classe Book.java e o respetivo ficheiro de mapeamento do Hibernate hibernateBook.hbm.xml.
Etiquetas:
Hibernate,
Java,
MVC,
Net Beans,
SpringWebMVC
quarta-feira, 30 de outubro de 2013
Primeiro Exemplo de Aplicação Spring Web MVC com o NetBeans IDE - 2
Após a análise anterior, focando a estrutura de projeto Spring Web MVC criada pelo NetBeans, e uma explicação sucinta sobre o modo de funcionamento da infraestrutura Spring Framework, vamos, neste artigo, criar um primeiro exemplo de controller e view.
Assim, vamos começar por criar uma classe Controller (OlaController) a qual irá devolver dados do Model (string "Olá Mundo!!!") e uma View (ola.jsp) que servirá para renderizar os dados do Model num Browser.
O resultado não será muito diferente do obtido no artigo anterior, mas o objetivo aqui é criar um Controller que instancia dados e os passa a uma View.
No próximo artigo, iremos avançar com o preenchimento de dados de Model oriundos de uma base de dados...
Assim, vamos criar um novo package (exemplo) no qual iremos colocar o Controller OlaController.java.
No NetBeans, podemos clicar sobre o package exemplo com o botão direito do rato e selecionar
New --> Other --> Categories: SpringFramework / File Types: AbstractController
(damos à nova classe o nome OlaController)
Assim, vamos começar por criar uma classe Controller (OlaController) a qual irá devolver dados do Model (string "Olá Mundo!!!") e uma View (ola.jsp) que servirá para renderizar os dados do Model num Browser.
O resultado não será muito diferente do obtido no artigo anterior, mas o objetivo aqui é criar um Controller que instancia dados e os passa a uma View.
No próximo artigo, iremos avançar com o preenchimento de dados de Model oriundos de uma base de dados...
Assim, vamos criar um novo package (exemplo) no qual iremos colocar o Controller OlaController.java.
No NetBeans, podemos clicar sobre o package exemplo com o botão direito do rato e selecionar
New --> Other --> Categories: SpringFramework / File Types: AbstractController
(damos à nova classe o nome OlaController)
Etiquetas:
Hibernate,
Java,
MVC,
Net Beans,
SpringWebMVC
Primeiro Exemplo de Aplicação Spring Web MVC com o NetBeans IDE - 1
O padrão arquitetural MVC (Model-View-Controller) permite separar um projeto nas suas componentes de:
Vamos, neste artigo, começar a criar uma aplicação Java Web, que implementa o padrão MVC através da framework Spring Web MVC.
Para desenvolver o nosso exemplo vamos usar o NetBeans IDE 7.2.1.
Começamos, então, por criar um novo projeto Java Web/Web Application, atribuir-lhe um nome, testSpringMVC01, selecionar o servidor aplicacional a usar (vamos usar o Apache Tomcat), e selecionar as frameworks que pretendemos usar.
Para este exemplo selecionamos, para além da framework Spring Web MVC (Spring Framework 3.1.1), o Hibernate 3.2.5, o qual iremos usar como infraestrutura de mapeamento entre o Model e a base de dados Oracle.
Ao selecionar o Hibernate, podemos logo aí configurar a string de ligação à base de dados. Se não o fizermos podemos mais tarde editar o ficheiro hibernate.cfg.xml para o fazer.
O Netbeans cria a seguinte estrutura de projeto:
Esta estrutura de pastas inclui o local onde deveremos colocar a camada VIEW, que neste caso será composta por diversos ficheiros JSP (Java Server Pages) - WEB-INF/jsp -, e as classes Java - Source Packages -, onde estarão o CONTROLLER e o MODEL.
- View - Apresentação (ou Interface com o Utilizador)
- Controller - Aplicação (ou camada de controlo e dispatching)
- Model - Modelo de Domínio
- Infraestrutural (diferentes frameworks; ex.: Spring Web MVC, Hibernate, etc.)
Vimos em artigos anteriores como usar a framework Struts 1 para criar uma aplicação Web de acordo com o padrão MVC, usando JSP, Java e a framework Hibernate.
Para desenvolver o nosso exemplo vamos usar o NetBeans IDE 7.2.1.
Começamos, então, por criar um novo projeto Java Web/Web Application, atribuir-lhe um nome, testSpringMVC01, selecionar o servidor aplicacional a usar (vamos usar o Apache Tomcat), e selecionar as frameworks que pretendemos usar.
Para este exemplo selecionamos, para além da framework Spring Web MVC (Spring Framework 3.1.1), o Hibernate 3.2.5, o qual iremos usar como infraestrutura de mapeamento entre o Model e a base de dados Oracle.
Ao selecionar o Hibernate, podemos logo aí configurar a string de ligação à base de dados. Se não o fizermos podemos mais tarde editar o ficheiro hibernate.cfg.xml para o fazer.
O Netbeans cria a seguinte estrutura de projeto:
Esta estrutura de pastas inclui o local onde deveremos colocar a camada VIEW, que neste caso será composta por diversos ficheiros JSP (Java Server Pages) - WEB-INF/jsp -, e as classes Java - Source Packages -, onde estarão o CONTROLLER e o MODEL.
Etiquetas:
Hibernate,
Java,
MVC,
Net Beans,
SpringWebMVC
sábado, 2 de fevereiro de 2013
Exemplo de aplicação Web Java usando Struts 1 - 4
No artigo anterior fizemos o código para a nossa aplicação exemplo listar os livros existentes na base de dados.
Artigos anteriores:
- Exemplo de Aplicação Web Java usando Struts 1 - 2
- Exemplo de Aplicação Web Java usando Struts 1 - 3
Vamos hoje, acrescentar o código necessário para criar e editar livros.
Para isso, vamos acrescentar ao nosso ficheiro struts-config.xml as seguintes definições:
- Um form bean para lidar com os dados do formulário de edição de livros (BookActionForm), ficando:
<global-forwards>
<forward name="welcome" path="/Welcome.do"/>
<forward name="listBooks" path="/ListBooks.do"/>
<forward name="actionBook" path="/ActionBook.do"/>
</global-forwards>
- E mais três actions (controllers). O primeiro (BookAction) irá decidir qual a view apropriada para a operação seguinte, e se for caso disso vai ler da BD o livro selecionado para pré-preencher o formulário de edição. O segundo (BookAddAction) irá fazer o tratamento do ActionForm que contém os dados do formulário de criação de um novo livro, e criar o livro na BD. O terceiro (BookUpdateAction) irá fazer o tratamento do ActionForm que contém os dados do formulário de edição de um livro, e atualizar os dados do livro na BD.
<action
path="/ActionBook"
name="actionBookForm"
scope="request"
type="Controller.BookAction"
parameter="method"
validate="false">
<forward name="edit" path="/editBook.jsp" />
<forward name="add" path="/addBook.jsp" />
<forward name="list" path="/ListBooks.do" redirect="true" />
</action>
<action
path="/BookAdd"
name="actionBookForm"
scope="request"
type="Controller.BookAddAction"
input="addBook.jsp"
validate="false">
<forward name="error" path="/errorBook.jsp" />
<forward name="list" path="/ListBooks.do" redirect="true" />
</action>
<action
path="/BookUpdate"
name="actionBookForm"
scope="request"
type="Controller.BookUpdateAction"
input="editBook.jsp"
validate="false">
<forward name="error" path="/errorBook.jsp" />
<forward name="list" path="/ListBooks.do" redirect="true" />
</action>
Artigos anteriores:
- Exemplo de Aplicação Web Java usando Struts 1 - 3
Vamos hoje, acrescentar o código necessário para criar e editar livros.
Para isso, vamos acrescentar ao nosso ficheiro struts-config.xml as seguintes definições:
- Um form bean para lidar com os dados do formulário de edição de livros (BookActionForm), ficando:
<form-beans>
<form-bean name="listBooksForm"
type="Controller.ListBooksForm" />
<form-bean name="actionBookForm"
type="Controller.BookActionForm" />
</form-beans>
- Mais um global forward (actionBook) a somar aos dois que já lá estavam (note-se que o welcome, que vinha de origem, se tornou desnecessário, podendo ser apagado...):
<global-forwards>
<forward name="welcome" path="/Welcome.do"/>
<forward name="listBooks" path="/ListBooks.do"/>
<forward name="actionBook" path="/ActionBook.do"/>
</global-forwards>
- E mais três actions (controllers). O primeiro (BookAction) irá decidir qual a view apropriada para a operação seguinte, e se for caso disso vai ler da BD o livro selecionado para pré-preencher o formulário de edição. O segundo (BookAddAction) irá fazer o tratamento do ActionForm que contém os dados do formulário de criação de um novo livro, e criar o livro na BD. O terceiro (BookUpdateAction) irá fazer o tratamento do ActionForm que contém os dados do formulário de edição de um livro, e atualizar os dados do livro na BD.
<action
path="/ActionBook"
name="actionBookForm"
scope="request"
type="Controller.BookAction"
parameter="method"
validate="false">
<forward name="edit" path="/editBook.jsp" />
<forward name="add" path="/addBook.jsp" />
<forward name="list" path="/ListBooks.do" redirect="true" />
</action>
<action
path="/BookAdd"
name="actionBookForm"
scope="request"
type="Controller.BookAddAction"
input="addBook.jsp"
validate="false">
<forward name="error" path="/errorBook.jsp" />
<forward name="list" path="/ListBooks.do" redirect="true" />
</action>
<action
path="/BookUpdate"
name="actionBookForm"
scope="request"
type="Controller.BookUpdateAction"
input="editBook.jsp"
validate="false">
<forward name="error" path="/errorBook.jsp" />
<forward name="list" path="/ListBooks.do" redirect="true" />
</action>
terça-feira, 29 de janeiro de 2013
Exemplo de aplicação Web Java usando Struts 1 - 3
Continuando o nosso exemplo, vamos neste artigo criar as camadas View e Controller da nossa aplicação MVC usando Struts, para listar os livros da BD fazendo uso das classes Model desenvolvidas anteriormente.
- Exemplo de Aplicação Web Java usando Struts 1 - 2
Numa aplicação Struts 1, o ficheiro web.xml, já referido num artigo anterior, especifica que os pedidos (requests) que satisfaçam o padrão '*.do' são encaminhados para o Struts ActionServlet.
O ActionServlet procura, no ficheiro de configuração struts-config.xml, qual a Ação que está mapeada no pedido que recebeu. O ActionServlet e os objetos de Ação (Action) compõem a parte de Controlador (Controller) da arquitetura MVC de uma aplicação Struts.
Para transferir dados entre Ações e a View, tipicamente implementada em JSPs, o Struts usa objetos ActionForm.
Quando um utilizador submete um form, o ActionForm, juntamente com os dados do form, é passado para o método execute da Ação.
A Ação pode validar os dados, e depois invocar a lógica necessária, idealmente encapsulada numa camada Model, da qual o Struts não tem qualquer conhecimento.
Quando a lógica de negócio é executada, a Ação transfere o controlo para a View especificada num ou mais objetos ActionForward objects, os quais são também configurados no struts-config.xml.
As entradas ActionForward representam os possíveis outputs de uma Ação.
Podem ser definidas entradas ActioForward por Ação, ou pode ser definida uma entrada ActionForward globalmente, para se aplicar a todas as Ações.
Numa aplicação Struts 1, o ficheiro web.xml, já referido num artigo anterior, especifica que os pedidos (requests) que satisfaçam o padrão '*.do' são encaminhados para o Struts ActionServlet.
O ActionServlet procura, no ficheiro de configuração struts-config.xml, qual a Ação que está mapeada no pedido que recebeu. O ActionServlet e os objetos de Ação (Action) compõem a parte de Controlador (Controller) da arquitetura MVC de uma aplicação Struts.
Para transferir dados entre Ações e a View, tipicamente implementada em JSPs, o Struts usa objetos ActionForm.
Quando um utilizador submete um form, o ActionForm, juntamente com os dados do form, é passado para o método execute da Ação.
A Ação pode validar os dados, e depois invocar a lógica necessária, idealmente encapsulada numa camada Model, da qual o Struts não tem qualquer conhecimento.
Quando a lógica de negócio é executada, a Ação transfere o controlo para a View especificada num ou mais objetos ActionForward objects, os quais são também configurados no struts-config.xml.
As entradas ActionForward representam os possíveis outputs de uma Ação.
Podem ser definidas entradas ActioForward por Ação, ou pode ser definida uma entrada ActionForward globalmente, para se aplicar a todas as Ações.
segunda-feira, 28 de janeiro de 2013
Exemplo de aplicação Web Java usando Struts 1 - 2
Neste artigo vamos criar a camada Model da nossa aplicação MVC usando Struts. Para isso vamos usar o Hibernate.
Vamos começar por criar um package Model, onde vamos criar as nossas classes POJO (Plain Old Java Objects) para posterior mapeamento com as tabelas da nossa base de dados (o Oracle XE 10g):
Vamos começar por criar um package Model, onde vamos criar as nossas classes POJO (Plain Old Java Objects) para posterior mapeamento com as tabelas da nossa base de dados (o Oracle XE 10g):
Depois, vamos criar o ficheiro de configuração do Hibernate, para o que podemos usar o Hibernate Configuration Wizard:
Exemplo de aplicação Web Java usando Struts 1 - 1
Struts é uma
framework para aplicações Web que faz uso de Java Servlets, JavaBeans,
ResourceBundles, XML, e alguns componentes Apache Commons.
O Apache Struts web framework é uma solução open-source para criar aplicações web em Java, usando uma arquitetura Model-View-Controller (MVC), oferecendo um ambiente extensível para desenvolvermos as nossas aplicações.
O Model representa as entidades do domínio (ou da base de dados), a View representa o código de apresentação das páginas Web, e o Controller representa o código navegacional.
O Struts fornece o
seu próprio componente de controlo (Controller) e pode ser integrado com
diversas tecnologias para fornecer o Model e a View.
Para o Model, o Struts pode
ser integrado com JDBC e EJB, ou com packages externos como o Hibernate, iBATIS, ou Object Relational Bridge.
Para a View, a framework
funciona com JSPs, mas podem ser usados outros sistemas de apresentação.
O Controlador atua como uma ponte entre o
Modelo da aplicação e a View (camada de apresentação Web).
Quando é recebido um pedido (request), o
Controlador invoca uma classe de Ação (Action class), a qual
consulta o Modelo para examinar ou atualizar o estado da aplicação.
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.
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.
Etiquetas:
Ferramentas ORM,
Hibernate,
Java,
Net Beans
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.
Criamos um package para as classes que correspondem às tabelas da BD e criamos a classe Book:
Etiquetas:
Ferramentas ORM,
Hibernate,
Java,
Net Beans
Subscrever:
Mensagens (Atom)