Vous êtes sur la page 1sur 16

Introduo ao JPA

Curso de Java EE 6
Java Persistence API (JPA) 2.0
Objetivos
Definir o propsito e uso do JPA numa
aplicao Java
Apresentar os conceitos da API de
persistncia e provedor JPA
Resultados Esperados
Saber o que significa JPA
Saber diferenciar JPA e JDBC
Saber quais so as principais
implementaes de JPA
Saber qual implementao est disponvel
no JBoss Application Server
O que JPA?
JPA = Java Persistence API
API padro desde o Java EE 5 para
persistncia de objetos em banco de
dados relacional
Especificao mantida pelo JCP
Disponvel no Java EE 6 na verso 2.0
Java Persistence API
API JDBC
Driver JDBC
Provedor JPA
Java Persistence API
Aplicao Java
Bando de Dados Relacional

MySQL

Oracle

Postgresql

JavaDB

etc

Hibernate

EclipseLink

OpenJPA

Kodo

etc
JPA no JBoss AS
Todo servidor de aplicaes Java EE 6
deve disponibilizar um provedor JPA
O JBoss Application Server tem integrado
o Hibernate como provedor JPA
Possvel usar JPA numa aplicao Java
simples
Alguns Conceitos
Unidade de Persistncia
Define configuraes JPA associadas a um
nome
Contm configuraes para conexo com o
banco dados
Define quais classes cujos objetos sero
persistidos em tabelas do banco de dados
/META-INF/persistence.xml
Exemplo de Unidade de
Persistncia
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0"
xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">

<persistence-unit name="exemploPU" transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<properties>
<property name="javax.persistence.jdbc.user" value="root"/>
<property name="javax.persistence.jdbc.password" value=""/>
<property name="javax.persistence.jdbc.url"
value="jdbc:mysql://localhost:3306/jpa"/>
<property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/>
<property name="hibernate.dialect"
value="org.hibernate.dialect.MySQL5InnoDBDialect"/>
<property name="hibernate.hbm2ddl.auto" value="create"/>
</properties>
</persistence-unit>
</persistence>
/META-INF/persistence.xml
Gerenciador de Persistncia
Interface implementada pelo provedor JPA
Disponibiliza mtodos para realizar as
operaes de persistncia
Representa um canal de comunicao com o
banco de dados
Contm um cache dos objetos j carregados
na memria
Gerenciador de Persistncia
javax.persistence.EntityManager
Fbrica de Gerenciadores de
Persistncia
Mantm as configuraes em memria
carregadas da unidade de persistncia
Permite abrir/criar um gerenciador de
persistncia
Pode manter um cache de objetos a ser
compartilhado entre todos os
gerenciadores de persistncia
Fbrica de Gerenciadores de
Persistncia
javax.persistence.EntityManagerFactory
Iniciando uma Fbrica
javax.persistence.Persistence
EntityManagerFactory emf = Persistence.createEntityManagerFactory("exemploPU");
EntityManager em = emf.createEntityManager();
em.persist(entidade);
em.close();
emf.close();
Concluso
Java Persistence API
Especificao padro do Java EE
Interfaces e classes padres para gerenciar
persistncia
Implementado por vrios provedores
Fcil de usar atravs das interfaces
EntityManagerFactory e EntityManager

Vous aimerez peut-être aussi