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 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.
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. 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.
6. 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.
7. 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.
8. 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.
9. ENTIDADE
Tudo que tiver 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
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.
13. Crie um projeto chamado ConexaoJPA
No projeto crie uma pacote:
br.com.etecmam.conexaojpa
14. 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