Aula08-PRSA4-Mapeamento I

Propaganda
Mapeamento I: JPA
P RO F. M A RC E LO RO B E RTO ZO R ZA N
D I S C I P L IN A: P ROJ ETO D E S I ST E M AS – P RSA 4
AU L A 0 7
Na aula de hoje!
Mapeamento JPA...
◦ O que é JPA?
◦ Mapeamento Objeto-Relacional
◦ Principais Funcionalidades do JPA
◦ Passo a passo para utilização em projetos
◦ Mapeamentos de entidades, chaves primárias, colunas, relacionamentos.
JPA: Java Persistence API
Especificação padrão para mapeamento objeto-relacional e gerenciamento de
persistência da plataforma Java EE 5.0
Versão 1.0, faz parte da especificação JSR-220 (EJB 3.0)
Possui amplo suporte pela maioria dos grandes players do mercado: Apache,
Oracle, BEA, JBoss
Mapeamento Objeto-Relacional (ORM)
Modelo OO vs Modelo Relacional
◦
◦
◦
◦
Classe = Tabela
Objeto = Linha
Atributo = Coluna
Associação = Chave Estrangeira
Mapeamento via XML ou Annotations
Objetos Java
ORM
- Conversão
JDBC
-Statements
- Result Sets
Banco de
Dados
Funcionalidades da JPA
Padroniza Mapeamento Objeto-Relacional
Utiliza POJO’s ao invés de Entity Beans
◦ POJO(Plain Old Java Object ): “Os Singelos Clássicos Objetos Java” são objetos Java que seguem um
desenho simplificado.
Pode ser usado com Java SE e Java EE
Suporta utilização de diferentes Providers
Possui uma linguagem de consulta estendida
Suporta herança, polimorfismo
Provedor JPA: Vários frameworks
disponíveis!
Passo a passo para utilização
Definir qual JPA Provider será utilizado:
◦
◦
◦
◦
Hibernate: http://jpa.hibernate.org
Toplink Essentials: http://oss.oracle.com/toplink-essentials-jpa.html
Open JPA: http://openjpa.apache.org
No NetBeans, utilizaremos o EclipseLink;
Definir o Banco de Dados a ser utilizado e importar o seu Driver JDBC:
◦ MySQL Community Server: https://dev.mysql.com/downloads/mysql/
◦ MySQL Connector/J 5.1: http://dev.mysql.com/downloads/connector/j/
◦ No NetBeans, importaremos a biblioteca .jar MySQL;
Realizar o Mapeamento Objeto-Relacional
◦ Classes do pacote model
Configurar o arquivo persistence.xml
Implementar acesso a dados via EntityManager
Modelo Relacional
Exemplo: Agenda Telefônica
Mapeamento Objeto Relacional
Entidades
@Entity
◦ Especifica que uma classe é uma entidade;
◦ Uma entidade é um objeto que pode ser persistido;
◦ Representa uma tabela no banco de dados relacional.
@Table
◦ Especifica nome da tabela no banco de dados.
Atributos
@Column
◦ Mapeia um atributo ou uma propriedade (getter) a um campo do banco de dados
◦ Possui diversas opções de validação
◦ Lança javax.persistence.PersistenceException
Chave Primária Simples
@Id
◦
◦
◦
◦
Cada entidade precisa possuir uma chave primária
Mapeia uma chave primária simples
Chave pode ser gerada automaticamente:
IDENTITY, AUTO, SEQUENCE, TABLE
Unidade de Persistência (PU)
Unidade de Persistência – arquivo .xml
Persistindo um objeto…
O EntityManagerFactory e
EntityManager…
A “fábrica” EntityManagerFactory utiliza a Unidade de Persistência criada no persistence.xml:
EntityManager: Utilizado para gerenciar as Entidades
◦ Criando um EntityManager a partir da “fábrica”:
Java Swing com JPA no NetBeans
Algumas facilidades…
◦ Componentes:
◦ Gerenciador de Entidade: EntityManager
◦ Consulta: Query
◦ Resultado da Consulta: List.
◦ Vinculação de elementos
Exercícios
Próxima aula…
Mapeamento (continuação)
Download