PCII 
ETEC MONSENHOR ANTONIO 
MAGLIANO 
2014 
Prof. Aloisio
Java Persistence API (JPA) 
Java Persistence API (JPA) é um framework leve, baseado em POJOs, para 
persistência em Java e Mapeamento Objeto-Relacional (ORM) que surgiu na 
plataforma Java EE 5. 
Os POJOs (Plain Old Java Objects) são objetos que seguem um desenho 
simplificado.
CAMADAS 
Em aplicativos de grande e médio porte é interessante organizá-los em 
camadas. Normalmente estas camadas dividem-se em: camada de 
apresentação, camada de negócios e de persistência.
Persistência de Dados 
Entre as alternativas para persistência de dados em sistemas orientados a 
objetos, pode-se citar os bancos orientados a objetos, que deveriam ser a 
alternativa mais lógica, visto que se comungam o mesmo modelo. 
Por que não ? 
●Tecnologia ainda desenvolvimento 
●Incompatibilidade com os sistemas legados das empresas, 
Assim, na maioria das vezes a escolha recai sobre bancos de dados relacionais 
que são uma tecnologia madura e confiável.
Modelo O.O. Versus Modelo Relacional 
No entanto, as diferenças entre o modelo orientado a objetos e o modelo 
relacional, geram um problema conhecido como incompatibilidade de 
impedância e é foi para resolver este problema que surgiu o Mapeamento 
Objeto-Relacional (ORM). 
O desafio de mapear de um para o outro não está em suas semelhanças, mas 
nos conceitos onde não há equivalente lógico para o outro. O problema não 
está na complexidade de um mapeamento único, mas na existência de 
múltiplas possibilidades, visto que há diversas maneiras de se mapear no 
modelo relacional.
Mapeamento ORM 
O JPA cuida de forma automatizada e transparente dos problemas de acesso 
ao banco, evitando que seja necessária a utilização, ou mesmo o conhecimento 
de comandos SQL como insert, update e select pelo desenvolvedor, o que 
proporciona alta produtividade e baixo acoplamento com o modelo de dados.
Mapeamento ORM 
O Mapeamento Objeto-Relacional com JPA é totalmente orientado por 
metadados. Isso pode ser feito quer pela inclusão de anotações para o código 
ou usando XML definido externamente.
ANOTAÇÕES 
É uma maneira simples e elegante de passar instruções que auxiliam no 
mapeamento e persistência de uma entidade e são embutidas nos bytecodes e 
lidas em tempo de execução. No caso do JPA são lidas na inicialização do 
sistema. 
Anotação Descrição 
@Entity Define o POJO, indicando o conceito a ser persistido. 
@Transient Informa que o atributo não será persistido. 
@Column Usado quando o atributo não possui o mesmo nome que o campo da 
tabela. 
@Id Quanto o atributo será o identificador do objeto. 
@Table Permite definir o nome da tabela diferente do nome da classe 
@OneToOne Define o relacionamento um-para-um 
@ManyToOne Define o relacionamento muitos-para-um 
@OneToMany Define o relacionamento um-para-muitos 
@ManyToMany Define o relacionamento muitos-para-muitos 
@Inheritance Permite utilizar herança.
ENTIDADE 
Tudo que tiver atributos e relacionamentos e vá ser persistido em um banco de 
dados relacional. 
Classe Aluno anotada como entidade
PROVEDOR DE PERSISTÊNCIA 
Provedor de Persistência (Persistence Provider). É a implementação das 
interfaces definidas pela JPA, que é apenas uma especificação, como 
exemplos pode-se citar: 
●Oracle TopLink 
●Hibernate 
●Apache OpenJPA, 
●EclipseLink 
●Etc.
Linguagem JPQL 
Recuperar dados através de consultas é tão importante quanto o 
armazenamento de dados. Para isto o JPA possui a JPQL (Java Persistence 
Query Language), uma linguagem de consulta ORM que opera sobre classes e 
objetos, diferente do SQL que opera sobre tabelas.
EXEMPLOS JPA
Crie um projeto chamado ConexaoJPA 
No projeto crie uma pacote: 
br.com.etecmam.conexaojpa
Configure o Conector MySql e o JPA 
1 - Adicione o driver mysql 
(Veja como fazer em aulas anteriores) 
2- Converta seu projeto para JPA: 
2.1 Configure – Convert to JPA Project
Configure o Conector MySql e o JPA
Configure o Conector MySql e o JPA
Crie uma classe chamada Produto 
Crie campos conforme figura
Adicione as anotações JPA ao Produto
Configure o arquivo Persistence.xml
Crie uma classe chamada CriaBanco
Log da Criação do Banco de Tabelas
Crie uma classe chamada PesquisarProduto
Em PesquisarProduto, teste outra maneira de Pesquisar
Crie um Classe chamada AtualizarProduto
Crie um Classe chamada DeletarProduto

JPA INTRODUÇÃO

  • 1.
    PCII ETEC MONSENHORANTONIO MAGLIANO 2014 Prof. Aloisio
  • 2.
    Java Persistence API(JPA) Java Persistence API (JPA) é um framework leve, baseado em POJOs, para persistência em Java e Mapeamento Objeto-Relacional (ORM) que surgiu na plataforma Java EE 5. Os POJOs (Plain Old Java Objects) são objetos que seguem um desenho simplificado.
  • 3.
    CAMADAS Em aplicativosde grande e médio porte é interessante organizá-los em camadas. Normalmente estas camadas dividem-se em: camada de apresentação, camada de negócios e de persistência.
  • 4.
    Persistência de Dados Entre as alternativas para persistência de dados em sistemas orientados a objetos, pode-se citar os bancos orientados a objetos, que deveriam ser a alternativa mais lógica, visto que se comungam o mesmo modelo. Por que não ? ●Tecnologia ainda desenvolvimento ●Incompatibilidade com os sistemas legados das empresas, Assim, na maioria das vezes a escolha recai sobre bancos de dados relacionais que são uma tecnologia madura e confiável.
  • 5.
    Modelo O.O. VersusModelo Relacional No entanto, as diferenças entre o modelo orientado a objetos e o modelo relacional, geram um problema conhecido como incompatibilidade de impedância e é foi para resolver este problema que surgiu o Mapeamento Objeto-Relacional (ORM). O desafio de mapear de um para o outro não está em suas semelhanças, mas nos conceitos onde não há equivalente lógico para o outro. O problema não está na complexidade de um mapeamento único, mas na existência de múltiplas possibilidades, visto que há diversas maneiras de se mapear no modelo relacional.
  • 6.
    Mapeamento ORM OJPA cuida de forma automatizada e transparente dos problemas de acesso ao banco, evitando que seja necessária a utilização, ou mesmo o conhecimento de comandos SQL como insert, update e select pelo desenvolvedor, o que proporciona alta produtividade e baixo acoplamento com o modelo de dados.
  • 7.
    Mapeamento ORM OMapeamento Objeto-Relacional com JPA é totalmente orientado por metadados. Isso pode ser feito quer pela inclusão de anotações para o código ou usando XML definido externamente.
  • 8.
    ANOTAÇÕES É umamaneira simples e elegante de passar instruções que auxiliam no mapeamento e persistência de uma entidade e são embutidas nos bytecodes e lidas em tempo de execução. No caso do JPA são lidas na inicialização do sistema. Anotação Descrição @Entity Define o POJO, indicando o conceito a ser persistido. @Transient Informa que o atributo não será persistido. @Column Usado quando o atributo não possui o mesmo nome que o campo da tabela. @Id Quanto o atributo será o identificador do objeto. @Table Permite definir o nome da tabela diferente do nome da classe @OneToOne Define o relacionamento um-para-um @ManyToOne Define o relacionamento muitos-para-um @OneToMany Define o relacionamento um-para-muitos @ManyToMany Define o relacionamento muitos-para-muitos @Inheritance Permite utilizar herança.
  • 9.
    ENTIDADE Tudo quetiver atributos e relacionamentos e vá ser persistido em um banco de dados relacional. Classe Aluno anotada como entidade
  • 10.
    PROVEDOR DE PERSISTÊNCIA Provedor de Persistência (Persistence Provider). É a implementação das interfaces definidas pela JPA, que é apenas uma especificação, como exemplos pode-se citar: ●Oracle TopLink ●Hibernate ●Apache OpenJPA, ●EclipseLink ●Etc.
  • 11.
    Linguagem JPQL Recuperardados através de consultas é tão importante quanto o armazenamento de dados. Para isto o JPA possui a JPQL (Java Persistence Query Language), uma linguagem de consulta ORM que opera sobre classes e objetos, diferente do SQL que opera sobre tabelas.
  • 12.
  • 13.
    Crie um projetochamado ConexaoJPA No projeto crie uma pacote: br.com.etecmam.conexaojpa
  • 14.
    Configure o ConectorMySql e o JPA 1 - Adicione o driver mysql (Veja como fazer em aulas anteriores) 2- Converta seu projeto para JPA: 2.1 Configure – Convert to JPA Project
  • 15.
    Configure o ConectorMySql e o JPA
  • 16.
    Configure o ConectorMySql e o JPA
  • 17.
    Crie uma classechamada Produto Crie campos conforme figura
  • 18.
  • 19.
    Configure o arquivoPersistence.xml
  • 20.
    Crie uma classechamada CriaBanco
  • 21.
    Log da Criaçãodo Banco de Tabelas
  • 22.
    Crie uma classechamada PesquisarProduto
  • 23.
    Em PesquisarProduto, testeoutra maneira de Pesquisar
  • 24.
    Crie um Classechamada AtualizarProduto
  • 25.
    Crie um Classechamada DeletarProduto