2012/01-LTP-08_JPA

Embed Size (px)

Citation preview

  • 7/31/2019 2012/01-LTP-08_JPA

    1/21

    Linguagem e Tcnica de Programao

    Tecnologia Java

    Professor: Hlder Seixas LimaE-mail: [email protected]

  • 7/31/2019 2012/01-LTP-08_JPA

    2/21

  • 7/31/2019 2012/01-LTP-08_JPA

    3/21

    Persistncia de dados

    Complexo? Sim

    Misturar duas linguagens (Java e SQL)

    confuso? Sim

    Cdigo fica mais complexo, confuso e ilegvel? Sim

    Como resolver este problema? JPA

  • 7/31/2019 2012/01-LTP-08_JPA

    4/21

    JPA

    uma especificao Java para mapeamentoobjeto-relacional. Java orientado a objetos: trabalhamos com

    classes; BD tradicionais so relacionais: trabalhamos com

    relaes (tabelas).

    JPA abstrai a complexidade de escrever

    comandos SQL.

  • 7/31/2019 2012/01-LTP-08_JPA

    5/21

    JPA

  • 7/31/2019 2012/01-LTP-08_JPA

    6/21

    JPA

    Mapeamento

  • 7/31/2019 2012/01-LTP-08_JPA

    7/21

  • 7/31/2019 2012/01-LTP-08_JPA

    8/21

    Importando bibliotecas

    O primeiro passo importar o driverJDBC Isto j foi feito na aula passada

    O segundo passo importar a biblioteca JPA Clique com o boto direito em Bibliotecas... e

    acione Adicionar biblioteca... Selecione EclipseLink(JPA 2.0) e clique em

    Adicionar biblioteca

  • 7/31/2019 2012/01-LTP-08_JPA

    9/21

    EclipseLink

    um framework que implementa aespecificao do JPA 2.

    Existem outros frameworks que fazem o

    mesmo: Hibernate, Toplink, OpenJPA. Vamos utilizar o EclipseLink por j estar

    disponvel no ambiente do NetBeans.

    D fi i d t t d

  • 7/31/2019 2012/01-LTP-08_JPA

    10/21

    Definindo contexto depersistncia Clique com o boto direito no projeto e acione

    Novo Outro... Na tela que se abre selecione Persistence

    Unidade de persistncia e clique em Prximo >

    D fi i d id d d

  • 7/31/2019 2012/01-LTP-08_JPA

    11/21

    Definindo unidade depersistncia

    Defina a conexo de banco de dados do seuprojeto

    D fi i d id d d

  • 7/31/2019 2012/01-LTP-08_JPA

    12/21

    Definindo unidade depersistncia

    Como resultado gerado o arquivopersistence.xml no pacote META-INF

  • 7/31/2019 2012/01-LTP-08_JPA

    13/21

    Mapeando a classe Conta

  • 7/31/2019 2012/01-LTP-08_JPA

    14/21

    Mapeando a classe Conta

    Precisamos informar unidade de persistnciaas classes que representam entidades, nonosso caso apenas a classe Conta.

    Acesse o arquivo persistence.xml no modoProjeto clique em Adicionar classe... eselecione a classe Conta.

    Criando o gerenciador de

  • 7/31/2019 2012/01-LTP-08_JPA

    15/21

    Criando o gerenciador deentidades

    Defina o seguinte atributo na classeTelaCadastroConta

    Modificando o cdigo Criar

  • 7/31/2019 2012/01-LTP-08_JPA

    16/21

    Modificando o cdigo CriarConta

    Faa as modificaes abaixo e verifique seest salvando a Conta corretamente.

    Modificando o cdigo Obter

  • 7/31/2019 2012/01-LTP-08_JPA

    17/21

    Modificando o cdigo ObterTodas Contas

    Faa as modificaes abaixo e verifique seest obtendo todas as Conta corretamente.

    Modificando o cdigo Obter

  • 7/31/2019 2012/01-LTP-08_JPA

    18/21

    Modificando o cdigo Obteruma Conta

    Faa as modificaes abaixo e verifique seest pesquisando uma Conta corretamente.

    Modificando o cdigo Excluir

  • 7/31/2019 2012/01-LTP-08_JPA

    19/21

    Modificando o cdigo ExcluirConta

    Faa as modificaes abaixo e verifique seest excluindo uma Conta corretamente.

    Modificando o cdigo Atualizar

  • 7/31/2019 2012/01-LTP-08_JPA

    20/21

    Modificando o cdigo AtualizarConta

    Faa as modificaes abaixo e verifique seest atualizando uma Conta corretamente.

  • 7/31/2019 2012/01-LTP-08_JPA

    21/21

    O que achou?

    JPA facilitou nossa vida ou no?