25
PCII ETEC MONSENHOR ANTONIO MAGLIANO 2014 Prof. Aloisio

JPA INTRODUÇÃO

Embed Size (px)

Citation preview

PCIIETEC MONSENHOR ANTONIO

MAGLIANO2014

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

Classe Aluno anotada como entidade

Tudo que tiver atributos e relacionamentos e vá ser persistido em um banco de

dados relacional.

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