FeaturesPluginsDocs & SupportCommunityPartners

Persistência de Java na plataforma Java EE 5

Este documento orienta você nas noções básicas de desenvolvimento de um aplicativo da Web usando a persistência de Java™. A persistência de Java foi introduzida como parte da plataforma Java EE 5. Neste tutorial, você irá criar um projeto simples de aplicativo da Web. Embora usemos a persistência em nosso projeto, a API da persistência de Java permite que a usemos sem necessidade de criar um módulo EJB.

O uso da persistência de Java no projeto simplifica bastante o desenvolvimento do aplicativo ao remover a necessidade de configurar descritores de implantação para fornecer informações de mapeamento relacional de objeto para campos persistentes ou propriedades. Em vez disso, você pode usar anotações para definir essas propriedades diretamente em uma classe Java simples.

A persistência de entidade é gerenciada pela API de EntityManager. A API de EntityManager manipula o contexto de persistência e cada persistência é um grupo de instâncias de entidades. Ao desenvolver o aplicativo, você pode usar anotações na classe para especificar a instância do contexto persistente das instâncias de entidades. O ciclo das instâncias de entidade é então manipulado pelo recipiente.

Este documento usa a versão NetBeans IDE 5.5.

Duração prevista: 15 minutos

Pré-requisitos

Este tutorial pressupõe que você tenha algum conhecimento básico das tecnologias a seguir, ou alguma experiência de programação com elas:

  • Programação em Java
  • NetBeans IDE

Software necessário para o tutorial

Para este tutorial, você precisa ter instalados no computador os seguintes softwares:

Para este tutorial, é necessário registrar uma instância local do servidor de aplicativos Sun Java System com o IDE.

Exercícios do tutorial


Configurando o projeto de aplicativo da Web

O objetivo deste exercício é criar o projeto de aplicativo da Web ZooApp. Este aplicativo irá tirar proveito de recursos do novo modelo de persistência de Java. Um dos recursos é que os objetos de entidade podem ser classes Java simples, de maneira que não precisam mais ser colocados em um modelo EJB e empacotados em um arquivo EAR. Isto significa que podemos criar classes de entidade dentro de um aplicativo da Web.

  1. Escolha Arquivo > Novo projeto (Ctrl-Shift-N). Selecione Aplicativo da Web na categoria Web e clique em Próximo.
  2. Nomeie o projeto ZooApp, defina o servidor como servidor de aplicativos Sun Java System, defina a versão do Java EE como Java EE 5 e clique em Próximo.
  3. Marque a caixa de seleção JavaServer Faces e clique em Finalizar.

Resumo

Neste exercício, você criou um aplicativo da Web Java EE 5 que irá conter classes de entidade.

Criando uma unidade de persistência

Neste exercício iremos criar uma unidade de persistência para informar ao recipiente quais classes serão gerenciadas pelo gerenciador de entidades e também a fonte de dados usada por essas entidades.

Criamos a unidade de persistência definindo suas propriedades em persistence.xml, que iremos criar em nosso módulo da Web. Após especificar o nome da unidade de persistência, iremos especificar o provedor de persistência, que contém as APIs que o recipiente irá usar para gerenciar instâncias de entidade. Precisamos também especificar a fonte de dados e a estratégia da geração de tabelas. Iremos criar a unidade de persistência usando o assistente para Nova unidade de persistência.

Observação: Podemos também criar uma unidade de persistência no assistente para Nova entidade de classe. Ao criar uma classe de entidade, o assistente solicitará a criação de uma unidade de persistência, se uma não existir.

Criando uma unidade de persistência

  1. Clique com o botão direito do mouse no nó do aplicativo ZooApp na janela Projetos e escolha Novo > Arquivo/Pasta para abrir o assistente para Novo arquivo.
  2. Na categoria Persistência, selecione Unidade de persistência e clique em Próximo.
  3. Preserve o nome da unidade de persistência padrão.
  4. Para o Provedor de persistência, use TopLink (default).

    O provedor padrão é o TopLink Essential.jar. O TopLink Essential.jar contém as bibliotecas para a persistência de Java. O gerenciador de entidades está localizado no TopLink Essential.jar.

  5. Para Fonte de dados, use a fonte de dados padrão jdbc/sample.

    A fonte de dados padrão jdbc/sample é usada para a conexão com o banco de dados Java DB que é fornecido com o servidor de aplicativos Sun Java System.

  6. Verifique se a unidade de persistência está usando a API de transação de Java e se a Estratégia de geração de tabela está definida como Criar, de modo que as tabelas baseadas nas classes de entidade sejam criadas quando o aplicativo for implantado.
  7. Clique em Finalizar.

O assistente para Nova unidade de persistência

Ao clicar em Finalizar, o IDE cria persistence.xml e o abre no Editor de fontes na exibição Design. Você pode também clicar em XML na barra de ferramentas do Editor de fontes para ver o XML de persistence.xml. Este arquivo contém todas as informações de que o recipiente de Java EE 5 precisa para gerenciar as entidades e a persistência do aplicativo.

Resumo

Neste exercício, você criou uma unidade de persistência para especificar a fonte de dados, as classes de entidade a serem preservadas e o gerenciador de entidades que o recipiente irá usar para gerenciar o ciclo das entidades.

Criando as classes de entidade

Neste exercício iremos criar duas classes de entidade, Animal.java e Pavilion.java, que representam as tabelas no banco de dados relacional que desejamos criar. Iremos também definir alguns campos nas classes para representar os dados. A especificação da persistência de Java permite que usemos anotações para fornecer informações ao recipiente sobre os campos, como as informações de mapeamento relacional de objeto.

Criando a classe de entidade Animal

Primeiro iremos criar a classe de entidade Animal. Esta classe representa a tabela ANIMAL em nosso banco de dados. Quando você cria a classe de entidade, o IDE adiciona a anotação @Entity para definir a classe como uma classe de entidade. Após criarmos a classe, iremos criar campos na classe para representar os dados que desejamos incluir na tabela e usar anotações para fornecer informações adicionais sobre alguns dos campos.

Cada classe de entidade deve ter uma chave primária. Quando você cria a classe de entidade, o IDE adiciona a anotação @Id para declarar o campo a ser usado como chave primária. O IDE também adiciona a anotação @Generated para especificar a estratégia de geração de chave para o Id primário.

Para criar a classe Animal, adote o seguinte procedimento:

  1. Clique com o botão direito do mouse no nó do projeto ZooApp e escolha Novo > Arquivo/Pasta.
  2. Na categoria Persistência, selecione Classe de entidade e clique em Próximo.
  3. Digite Animal para o nome da classe, digite entity para o pacote e deixe o Tipo de chave primária como Long. Clique em Finalizar.

Ao clicar em Finalizar, a nova classe de entidade Animal.java se abre no Editor de fontes. No Editor de fontes, adote este procedimento:

  1. Adicione as seguintes declarações de campo à classe:
      String name;
      String kind;
      String weight;
      Pavilion pavilion;
  2. Clique com o botão direito do mouse no Editor de fontes e escolha Refatorar > Encapsular campos para gerar getters e setters para cada campo. Na caixa de diálogo Encapsular campos, certifique-se de que as caixas de seleção getter e setter estejam marcadas para todos os campos.
  3. Na caixa de diálogo Encapsular campos, clique em Próximo e, em seguida, clique em Fazer refatoração na guia Refatoração da janela Saída.
  4. Agora desejamos alterar o nome de uma das colunas que serão criadas na tabela Animal. Queremos que a coluna seja chamada de animalName em vez de name. Podemos usar anotações para espeficar o nome da coluna gerada adicionando a seguinte anotação acima da declaração do campo name:
       @Column(name="animalName")
        private String name;
  5. Queremos também que a coluna pavilion na tabela Animal tenha um relacionamento vários-para-um. Podemos fazer isso usando anotações ao adicionar a seguinte anotação acima da declaração pavilion:
       @ManyToOne
        private Pavilion pavilion;
  6. Pressione Alt-Shift-F para gerar instruções de importação necessárias para a classe.
  7. Salve as alterações.

Nesta etapa, iremos criar a classe de entidade Pavilion.

Criando a classe de entidade Pavilion

Agora iremos criar a classe de entidade Pavilion, representando a tabela PAVILION em nosso banco de dados. Iremos usar novamente anotações em nossa classe para especificar o mapeamento relacional de objeto de alguns de nossos campos. Para criar a classe Pavilion, adote o seguinte procedimento:

  1. Clique com o botão direito do mouse no nó do projeto ZooApp e escolha Novo > Arquivo/Pasta.
  2. Na categoria Persistência, selecione Classe de entidade e clique em Próximo.
  3. Digite Pavilion para o nome da classe, digite entity para o pacote e deixe o Tipo de chave primária como Long. Clique em Finalizar.

Ao clicar em Finalizar, a nova classe de entidade Pavilion.java se abre no Editor de fontes. No Editor de fontes, adote este procedimento:

  1. Adicione as seguintes declarações de campo à classe:
      String name;
      String address;
      Collection <Animal> animals;
  2. Escolha Refatorar > Encapsular campos para gerar os getters e os setters para os campos.
  3. Adicione a seguinte anotação acima da declaração name para alterar o nome da coluna gerada:
       @Column(name="pavilionName")
        private String name;
  4. Adicione a seguinte anotação acima da coleção animals para especificar um relacionamento um-para-vários para a entidade:
       @OneToMany(mappedBy="pavilion")
        private Collection <Animal> animals;
  5. Pressione Alt-Shift-F para gerar instruções de importação ausentes.
  6. Salve as alterações.

Resumo

Neste exercício, você criou duas classes de entidade e definiu campos. Usou também anotações para definir as propriedades de algumas colunas nas tabelas que serão geradas quando você implantar o aplicativo.

Criando uma interface da Web

Agora desejamos criar algumas páginas da Web simples para ver se as tabelas do banco de dados foram criadas e se podemos adicionar dados. Iremos adicionar páginas do Java Server Faces (JSF) ao aplicativo e usar as Páginas JSF do assistente para Classe de entidade para criar rapidamente uma interface da Web simples.

  1. Escolha Arquivo > Novo no menu principal. Selecione Páginas JSF a partir de Classe de entidade na categoria Persistência e clique em Próximo.
  2. Em Novas páginas JSF, no assistente para Classe de entidade, clique em Adicionar todos para selecionar as duas classes de entidade e clique em Próximo.
  3. Deixe vazio o campo de texto Pasta de páginas JSF para salvar os arquivos JSF no local padrão.
  4. Especifique entity como o pacote para as classes geradas e clique em Finalizar.

As Páginas JSF no assistente para Classe de entidade

Quando você clica em Finalizar, o IDE gera os arquivos do JavaServer Faces necessários, de maneira que podemos executar e testar o ZooApp.

Executando o projeto

Neste exercício, iremos implantar o projeto do aplicativo da Web ZooApp e testar o aplicativo.

  1. Inicie o banco de dados Java DB escolhendo Ferramentas > Banco de dados Java DB > Iniciar servidor Java DB.
  2. Clique com o botão direito do mouse no nó do projeto ZooApp e escolha Executar projeto.

Quando você clica em Executar, abre-se uma página no navegador com um menu que permite que você veja uma lista de pavilhões e animais.

Página principal de ZooApp

Você também pode adicionar, editar ou excluir os dados de animais e pavilhões.

Página Adicionar animal de ZooApp

Resumo

Neste exercício, você construiu o aplicativo da Web ZooApp desenvolvido para a plataforma Java EE 5. Em seguida implantou e testou o aplicativo da Web ZooApp.

Solução de problemas

Seguem-se alguns problemas que você poderá encontrar ao criar o projeto.

Problema com o Assistente para Novas páginas JSF da classe de entidade

Ao usar o assistente para criar Páginas JSF de uma classe de entidade, você poderá ver a seguinte mensagem de erro no assistente:

Este assistente somente pode ser usado em um projeto da Web com suporte a JSF.

Se vir esta mensagem, será necessário verificar se a estrutura do Java Server Faces foi adicionada às propriedades do projeto. Você pode adicionar suporte para Java Server Faces ao projeto da Web adotando o seguinte procedimento:

  1. Clique com o botão direito do mouse no nó do aplicativo na janela Projetos e selecione Propriedades.
  2. Selecione Estruturas no painel Categorias da caixa de diálogo Propriedades do projeto e, em seguida, clique em Adicionar.
  3. Na caixa de diálogo Selecionar estruturas, selecione Java Server Faces e clique em OK.
  4. Clique em OK na caixa de diálogo Propriedades do projeto para fechar a janela.

Após adicionar a estrutura do JSF às propriedades do projeto, você deverá poder criar as páginas JSF usando o assistente.



Próximas etapas

Para obter mais informações sobre o uso do NetBeans IDE 5.5 para desenvolver aplicativos Java EE, consulte os seguintes recursos:

Mais informações sobre o uso da persistência de Java encontram-se no Tutorial do Java EE 5.

Para enviar comentários e sugestões, obter suporte e se manter informado sobre os mais recentes desenvolvimentos dos recursos de desenvolvimento do Java EE do NetBeans IDE, inscreva-se na lista de endereçamento de nbj2ee.

Bookmark this page

del.icio.us furl simpy slashdot technorati digg
Companion
Projects:
MySQL Database Server   Open JDK: an Open SourceJDK   GlassFish Community: an Open Source Application Server    Mobile & Embedded Community    Open Solaris   java.net - The Source for Java Technology Collaboration   Virtual Box - full virtualizer  Open ESB - The Open Enterprise Service Bus Powered by