Introdução Configuração Padrão POJO Framework Mapeamento ... · Separação entre a...
Transcript of Introdução Configuração Padrão POJO Framework Mapeamento ... · Separação entre a...
![Page 1: Introdução Configuração Padrão POJO Framework Mapeamento ... · Separação entre a aplicação e o acesso ao ... Hibernate Prof. Enzo Seraphim Introdução Configuração Padrão](https://reader031.fdocuments.net/reader031/viewer/2022020318/5beceaa809d3f2ed1c8c1d14/html5/thumbnails/1.jpg)
Framework Pesistência de
ObjetosJava
Prof. Enzo Seraphim
Introdução
Configuração
Padrão POJO
Mapeamento Annotation
PersistênciaObjetos
![Page 2: Introdução Configuração Padrão POJO Framework Mapeamento ... · Separação entre a aplicação e o acesso ao ... Hibernate Prof. Enzo Seraphim Introdução Configuração Padrão](https://reader031.fdocuments.net/reader031/viewer/2022020318/5beceaa809d3f2ed1c8c1d14/html5/thumbnails/2.jpg)
O que é?
Framework persistência de Objetos é uma moderna solução de mapeamento objeto-relacional(ORM)– Persistência tranparente (POJO)– Mapeamento de Classes e
Relacionamentos em Tabelas– Transparência
Separação entre a aplicação e o acesso ao banco
![Page 3: Introdução Configuração Padrão POJO Framework Mapeamento ... · Separação entre a aplicação e o acesso ao ... Hibernate Prof. Enzo Seraphim Introdução Configuração Padrão](https://reader031.fdocuments.net/reader031/viewer/2022020318/5beceaa809d3f2ed1c8c1d14/html5/thumbnails/3.jpg)
O que é?
Facilidade de uso– Controle de transações– Independência quanto ao tipo de base de
dados Consulta de dados
– Java Persistence Query Language– Criteria Queries
Licença LGPL
![Page 4: Introdução Configuração Padrão POJO Framework Mapeamento ... · Separação entre a aplicação e o acesso ao ... Hibernate Prof. Enzo Seraphim Introdução Configuração Padrão](https://reader031.fdocuments.net/reader031/viewer/2022020318/5beceaa809d3f2ed1c8c1d14/html5/thumbnails/4.jpg)
Transparência
Persistência sem impacto no código dos objetos de negócio
Qualquer classe pode ser uma classe persistente sem ser necessário implementar nenhuma classe ou interface
Classes persistentes podem ser usadas fora do contexto de persistência (ex Testes)
Total portabilidade sem dependências
![Page 5: Introdução Configuração Padrão POJO Framework Mapeamento ... · Separação entre a aplicação e o acesso ao ... Hibernate Prof. Enzo Seraphim Introdução Configuração Padrão](https://reader031.fdocuments.net/reader031/viewer/2022020318/5beceaa809d3f2ed1c8c1d14/html5/thumbnails/5.jpg)
Problemas dos SGBDRs
Modelagem– Não há polimorfismo– Não há herança
Lógica de negócio– Stored procedures (perca de
portabilidade)
![Page 6: Introdução Configuração Padrão POJO Framework Mapeamento ... · Separação entre a aplicação e o acesso ao ... Hibernate Prof. Enzo Seraphim Introdução Configuração Padrão](https://reader031.fdocuments.net/reader031/viewer/2022020318/5beceaa809d3f2ed1c8c1d14/html5/thumbnails/6.jpg)
Vantagens dos SGBDRs
Trabalhar com grandes quantidades de dados– Busca, ordenação
Trabalhar com conjuntos de dados– Junções e agregações
Compartilhamento– Concorrência (Transações)– Muitas aplicações
Integridade– Restrições (Constraints)– Isolação de transações
![Page 7: Introdução Configuração Padrão POJO Framework Mapeamento ... · Separação entre a aplicação e o acesso ao ... Hibernate Prof. Enzo Seraphim Introdução Configuração Padrão](https://reader031.fdocuments.net/reader031/viewer/2022020318/5beceaa809d3f2ed1c8c1d14/html5/thumbnails/7.jpg)
Framework Pesistência de
ObjetosHibernate
Prof. Enzo Seraphim
Introdução
Configuração
Padrão POJO
Mapeamento Annotation
PersistênciaObjetos
![Page 8: Introdução Configuração Padrão POJO Framework Mapeamento ... · Separação entre a aplicação e o acesso ao ... Hibernate Prof. Enzo Seraphim Introdução Configuração Padrão](https://reader031.fdocuments.net/reader031/viewer/2022020318/5beceaa809d3f2ed1c8c1d14/html5/thumbnails/8.jpg)
Banco de Dados Mysql
Mapeamento de classes para Tabelas (framework Objeto-Relacional)– Hibernate (ou outro)
Banco de Dados Relacional– MySQL (ou outro)
Administração do MySQL– phpMyAdmin (ou outra ferramenta)
Wamp=mysql+phpMyAdmin+etc– Iniciar Wamp (icone lado relógio)– Menu contexto phpMyAdmin
![Page 9: Introdução Configuração Padrão POJO Framework Mapeamento ... · Separação entre a aplicação e o acesso ao ... Hibernate Prof. Enzo Seraphim Introdução Configuração Padrão](https://reader031.fdocuments.net/reader031/viewer/2022020318/5beceaa809d3f2ed1c8c1d14/html5/thumbnails/9.jpg)
phpMyAdmin
![Page 10: Introdução Configuração Padrão POJO Framework Mapeamento ... · Separação entre a aplicação e o acesso ao ... Hibernate Prof. Enzo Seraphim Introdução Configuração Padrão](https://reader031.fdocuments.net/reader031/viewer/2022020318/5beceaa809d3f2ed1c8c1d14/html5/thumbnails/10.jpg)
Base de Dados e Usuário
Para o mapeamento automático de classes para tabelas Hibernate necessita:– Banco de Dados: MySQL– Base de Dados: locacao– Usuário: locacao– Senha: locacao
Para criar base e usuário no MySQL– Abra o phpMyAdmin– Selecione a aba Privilégios– Selecione criar novo usuário
![Page 11: Introdução Configuração Padrão POJO Framework Mapeamento ... · Separação entre a aplicação e o acesso ao ... Hibernate Prof. Enzo Seraphim Introdução Configuração Padrão](https://reader031.fdocuments.net/reader031/viewer/2022020318/5beceaa809d3f2ed1c8c1d14/html5/thumbnails/11.jpg)
Mysql:Criando Base e Usuário no
locadora
locadoralocadora
localhost
![Page 12: Introdução Configuração Padrão POJO Framework Mapeamento ... · Separação entre a aplicação e o acesso ao ... Hibernate Prof. Enzo Seraphim Introdução Configuração Padrão](https://reader031.fdocuments.net/reader031/viewer/2022020318/5beceaa809d3f2ed1c8c1d14/html5/thumbnails/12.jpg)
Netbeans:Conexões Bases de Dados
Netbeans oferece assistente para gerenciar conexões com bases de dados:– Conexões podem ser usadas por wizards e
plugins para facilitar configurações
Criar uma conexão– Aba Esquerda:
Serviços– Base de Dados– Menu contexto:
nova conexão
![Page 13: Introdução Configuração Padrão POJO Framework Mapeamento ... · Separação entre a aplicação e o acesso ao ... Hibernate Prof. Enzo Seraphim Introdução Configuração Padrão](https://reader031.fdocuments.net/reader031/viewer/2022020318/5beceaa809d3f2ed1c8c1d14/html5/thumbnails/13.jpg)
Netbeans: Criando Conexão
locadora
localhost3306
locadoralocadora
![Page 14: Introdução Configuração Padrão POJO Framework Mapeamento ... · Separação entre a aplicação e o acesso ao ... Hibernate Prof. Enzo Seraphim Introdução Configuração Padrão](https://reader031.fdocuments.net/reader031/viewer/2022020318/5beceaa809d3f2ed1c8c1d14/html5/thumbnails/14.jpg)
Netbeans:Persistence Unit
– Aba Projeto – Menu contexto:
Novo | Outro
![Page 15: Introdução Configuração Padrão POJO Framework Mapeamento ... · Separação entre a aplicação e o acesso ao ... Hibernate Prof. Enzo Seraphim Introdução Configuração Padrão](https://reader031.fdocuments.net/reader031/viewer/2022020318/5beceaa809d3f2ed1c8c1d14/html5/thumbnails/15.jpg)
Netbeans:Configurando PU
locadoraPU
jdbc:mysql://localhost:3306/locadoraHibernate(JPA 1.0)
Nome da Persistence Unit Biblioteca Conexão da base de dados:
![Page 16: Introdução Configuração Padrão POJO Framework Mapeamento ... · Separação entre a aplicação e o acesso ao ... Hibernate Prof. Enzo Seraphim Introdução Configuração Padrão](https://reader031.fdocuments.net/reader031/viewer/2022020318/5beceaa809d3f2ed1c8c1d14/html5/thumbnails/16.jpg)
Netbeans:Adicionando Entidades
![Page 17: Introdução Configuração Padrão POJO Framework Mapeamento ... · Separação entre a aplicação e o acesso ao ... Hibernate Prof. Enzo Seraphim Introdução Configuração Padrão](https://reader031.fdocuments.net/reader031/viewer/2022020318/5beceaa809d3f2ed1c8c1d14/html5/thumbnails/17.jpg)
Netbeans:persistence.xml
O arquivo persistence.xml contém as configurações para base de dados
![Page 18: Introdução Configuração Padrão POJO Framework Mapeamento ... · Separação entre a aplicação e o acesso ao ... Hibernate Prof. Enzo Seraphim Introdução Configuração Padrão](https://reader031.fdocuments.net/reader031/viewer/2022020318/5beceaa809d3f2ed1c8c1d14/html5/thumbnails/18.jpg)
persistence.xml para Oracle Express Edition
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.0" … >
<persistence-unit name="eleicaoPU" … >
...
<properties>
<property … />
<property name="hibernate.dialect" value="org.hibernate.dialect.OracleDialect" />
</properties>
</persistence-unit>
</persistence>
![Page 19: Introdução Configuração Padrão POJO Framework Mapeamento ... · Separação entre a aplicação e o acesso ao ... Hibernate Prof. Enzo Seraphim Introdução Configuração Padrão](https://reader031.fdocuments.net/reader031/viewer/2022020318/5beceaa809d3f2ed1c8c1d14/html5/thumbnails/19.jpg)
Netbeans:Biblioteca Mysql JDBC
– Aba Projeto – Bibliotecas– Menu contexto:
Add Library
![Page 20: Introdução Configuração Padrão POJO Framework Mapeamento ... · Separação entre a aplicação e o acesso ao ... Hibernate Prof. Enzo Seraphim Introdução Configuração Padrão](https://reader031.fdocuments.net/reader031/viewer/2022020318/5beceaa809d3f2ed1c8c1d14/html5/thumbnails/20.jpg)
Trabalhando com persistencia
:EntityManagerFactory
persistence.xmlcreateEntityManager()
:EntityManager
createEntityManager
import javax.persistence.EntityManager;import javax.persistence.EntityManagerFactory;import javax.persistence.Persistence;public class App{public static void main (String [] args ){ EntityManagerFactory emf = Persistence.createEntityManagerFactory("locadoraPU"); EntityManager em = emf.createEntityManager(); em.close(); emf.close(); }}
![Page 21: Introdução Configuração Padrão POJO Framework Mapeamento ... · Separação entre a aplicação e o acesso ao ... Hibernate Prof. Enzo Seraphim Introdução Configuração Padrão](https://reader031.fdocuments.net/reader031/viewer/2022020318/5beceaa809d3f2ed1c8c1d14/html5/thumbnails/21.jpg)
Criando o banco Manipulação de objeto no base de dados
– EntityManagerFactory e EntityManager Definir classe (main) para criar tabelas:
– EntityManager + Property Properties={"hibernate.hbm2ddl.auto",
"create"} public static void main (String [] args ){ Properties properties = new Properties(); properties.setProperty( "hibernate.hbm2ddl.auto", "create"); EntityManagerFactory emf = Persistence.createEntityManagerFactory( "locadoraPU", properties); EntityManager em = emf.createEntityManager(); em.close(); emf.close();}
![Page 22: Introdução Configuração Padrão POJO Framework Mapeamento ... · Separação entre a aplicação e o acesso ao ... Hibernate Prof. Enzo Seraphim Introdução Configuração Padrão](https://reader031.fdocuments.net/reader031/viewer/2022020318/5beceaa809d3f2ed1c8c1d14/html5/thumbnails/22.jpg)
phpMyAdmin:Visualizar Tabelas e Dados
PhpMyAdmin | Database | locadora
![Page 23: Introdução Configuração Padrão POJO Framework Mapeamento ... · Separação entre a aplicação e o acesso ao ... Hibernate Prof. Enzo Seraphim Introdução Configuração Padrão](https://reader031.fdocuments.net/reader031/viewer/2022020318/5beceaa809d3f2ed1c8c1d14/html5/thumbnails/23.jpg)
Framework Pesistência de
ObjetosHibernate
Prof. Enzo Seraphim
Introdução
Configuração
Padrão POJO
Mapeamento Annotation
PersistênciaObjetos
![Page 24: Introdução Configuração Padrão POJO Framework Mapeamento ... · Separação entre a aplicação e o acesso ao ... Hibernate Prof. Enzo Seraphim Introdução Configuração Padrão](https://reader031.fdocuments.net/reader031/viewer/2022020318/5beceaa809d3f2ed1c8c1d14/html5/thumbnails/24.jpg)
Exemplo
package br.edu.unifei.bd.locadora;
public class Filme { private int codigo; private String nome; public int getCodigo(){ return codigo;} private void setCodigo(int v){ codigo = codigo;}
public String getNome(){ return nome;} private void setNome(int nome){ this.nome = nome;}}
Cliente
-login:String-cpf:String-nome:String
Locacao
-id:int-locacao:Calendar-devolucao:Calendar
Filme
-codigo:int-nome:String
* 1
![Page 25: Introdução Configuração Padrão POJO Framework Mapeamento ... · Separação entre a aplicação e o acesso ao ... Hibernate Prof. Enzo Seraphim Introdução Configuração Padrão](https://reader031.fdocuments.net/reader031/viewer/2022020318/5beceaa809d3f2ed1c8c1d14/html5/thumbnails/25.jpg)
Exemplo
package br.edu.unifei.bd.locadora;
public class Locacao { private int id;
private Filme filme; private Cliente cliente;
private Calendar locacao; private Calendar devolucao;
//... Get´s e Set´s}
Cliente
-login:String-cpf:String-nome:String
Locacao
-id:int-locacao:Calendar-devolucao:Calendar
Filme
-codigo:int-nome:String
* 1
![Page 26: Introdução Configuração Padrão POJO Framework Mapeamento ... · Separação entre a aplicação e o acesso ao ... Hibernate Prof. Enzo Seraphim Introdução Configuração Padrão](https://reader031.fdocuments.net/reader031/viewer/2022020318/5beceaa809d3f2ed1c8c1d14/html5/thumbnails/26.jpg)
Exemplo
package br.edu.unifei.bd.locadora;
public class Cliente { private String login; private String CPF; private String nome; private List<Locacao> locacoes = new ArrayList<Locacao>();
public int sizeOfLocacao(){...} public Iterator<Locacao> iteratorLocacao(){...} public boolean addLocacao(Locacao v){...} public Locacao removeLocacao(int idx){...} //... Get´s e Set´s}
Cliente
-login:String-cpf:String-nome:String
Locacao
-id:int-locacao:Calendar-devolucao:Calendar
Filme
-codigo:int-nome:String
* 1
![Page 27: Introdução Configuração Padrão POJO Framework Mapeamento ... · Separação entre a aplicação e o acesso ao ... Hibernate Prof. Enzo Seraphim Introdução Configuração Padrão](https://reader031.fdocuments.net/reader031/viewer/2022020318/5beceaa809d3f2ed1c8c1d14/html5/thumbnails/27.jpg)
Framework Pesistência de
ObjetosHibernate
Prof. Enzo Seraphim
Introdução
Configuração
Padrão POJO
Mapeamento Annotation
PersistênciaObjetos
![Page 28: Introdução Configuração Padrão POJO Framework Mapeamento ... · Separação entre a aplicação e o acesso ao ... Hibernate Prof. Enzo Seraphim Introdução Configuração Padrão](https://reader031.fdocuments.net/reader031/viewer/2022020318/5beceaa809d3f2ed1c8c1d14/html5/thumbnails/28.jpg)
Anotações
Annotation é uma opção do uso de metadados ao longo do código.– Interpretação realizada posteriormente
por um compilador ou pré compilador para realizar alguma tarefa.
Hibernate Annotation é uma implementação JPA(Java Persistente API)
A anotação é feita na própria classe– maior Produtividade
Atributos não necessitam ser mapeados pois, por padrão são persistentes
Annotation substitui o mapeamento por arquivo XML
![Page 29: Introdução Configuração Padrão POJO Framework Mapeamento ... · Separação entre a aplicação e o acesso ao ... Hibernate Prof. Enzo Seraphim Introdução Configuração Padrão](https://reader031.fdocuments.net/reader031/viewer/2022020318/5beceaa809d3f2ed1c8c1d14/html5/thumbnails/29.jpg)
Anotações
Atributos não necessitam ser mapeados pois, por padrão são persistentes
Annotation:– antes class: @Entity– antes atributo chave: @Id– chave autoincremento:@GeneratedValue– antes atributo relacionamento (UML):
@OneToMany, @OneToOne,
@OneToMany, @ManyToMany
![Page 30: Introdução Configuração Padrão POJO Framework Mapeamento ... · Separação entre a aplicação e o acesso ao ... Hibernate Prof. Enzo Seraphim Introdução Configuração Padrão](https://reader031.fdocuments.net/reader031/viewer/2022020318/5beceaa809d3f2ed1c8c1d14/html5/thumbnails/30.jpg)
Exemplo
package br.edu.unifei.bd.locadora;import javax.persistence.Entity;import javax.persistence.GeneratedValue;import javax.persistence.Id;@Entitypublic class Filme {
@Id @GeneratedValue private int codigo; private String nome; //... Get´s e Set´s}
Cliente
-login:String-cpf:String-nome:String
Locacao
-id:int-locacao:Calendar-devolucao:Calendar
Filme
-codigo:int-nome:String
* 1
![Page 31: Introdução Configuração Padrão POJO Framework Mapeamento ... · Separação entre a aplicação e o acesso ao ... Hibernate Prof. Enzo Seraphim Introdução Configuração Padrão](https://reader031.fdocuments.net/reader031/viewer/2022020318/5beceaa809d3f2ed1c8c1d14/html5/thumbnails/31.jpg)
Exemplo
package br.edu.unifei.bd.locadora;...@Entitypublic class Locacao { @Id @GeneratedValue private int id; @OneToOne private Filme filme; @ManyToOne private Cliente cliente;
private Calendar locacao; private Calendar devolucao; //... Get´s e Set´s}
Cliente
-login:String-cpf:String-nome:String
Locacao
-id:int-locacao:Calendar-devolucao:Calendar
Filme
-codigo:int-nome:String
* 1
![Page 32: Introdução Configuração Padrão POJO Framework Mapeamento ... · Separação entre a aplicação e o acesso ao ... Hibernate Prof. Enzo Seraphim Introdução Configuração Padrão](https://reader031.fdocuments.net/reader031/viewer/2022020318/5beceaa809d3f2ed1c8c1d14/html5/thumbnails/32.jpg)
Exemplo
package br.edu.unifei.bd.locadora;...@Entitypublic class Cliente { @Id private String login; private String CPF; private String nome;
@OneToMany private List<Locacao> locacoes = new ArrayList<Locacao>();
//... Get´s e Set´s}
Cliente
-login:String-cpf:String-nome:String
Locacao
-id:int-locacao:Calendar-devolucao:Calendar
Filme
-codigo:int-nome:String
* 1
![Page 33: Introdução Configuração Padrão POJO Framework Mapeamento ... · Separação entre a aplicação e o acesso ao ... Hibernate Prof. Enzo Seraphim Introdução Configuração Padrão](https://reader031.fdocuments.net/reader031/viewer/2022020318/5beceaa809d3f2ed1c8c1d14/html5/thumbnails/33.jpg)
login:Stringidade:Stringnome:String
DiarioMensal
Cliente
ultimaLocacaocredito:float
Generalização
Annotation Generalização:– antes class: @Entity– tipo mapeamento: @Inheritance
strategy=InheritanceType.SINGLE_TABLE
strategy=InheritanceType.JOINED
strategy=InheritanceType.TABLE_PER_CLASS
– discriminador:@DiscriminatorColumn (name="tipoPessoa",
discriminatorType=DiscriminatorType.STRING)
– Valor discriminador: @DiscriminatorValue (value="Pessoa")
![Page 34: Introdução Configuração Padrão POJO Framework Mapeamento ... · Separação entre a aplicação e o acesso ao ... Hibernate Prof. Enzo Seraphim Introdução Configuração Padrão](https://reader031.fdocuments.net/reader031/viewer/2022020318/5beceaa809d3f2ed1c8c1d14/html5/thumbnails/34.jpg)
Generalização
package br.edu.unifei.bd.locadora;...@Entity@Inheritance(strategy=InheritanceType.SINGLE_TABLE)@DiscriminatorColumn(name="tipoCliente", discriminatorType=DiscriminatorType.STRING)@DiscriminatorValue(value="Cliente")public class Cliente { @Id private String login; private String CPF; private String nome; @OneToMany private List<Locacao> locacoes = new ArrayList<Locacao>(); //... Get´s e Set´s }
login:Stringidade:Stringnome:String
DiarioMensal
Cliente
ultimaLocacaocredito:float
![Page 35: Introdução Configuração Padrão POJO Framework Mapeamento ... · Separação entre a aplicação e o acesso ao ... Hibernate Prof. Enzo Seraphim Introdução Configuração Padrão](https://reader031.fdocuments.net/reader031/viewer/2022020318/5beceaa809d3f2ed1c8c1d14/html5/thumbnails/35.jpg)
Generalização
package br.edu.unifei.bd.locadora;...@Entity@DiscriminatorValue(value="Mensal")public class Mensal extends Cliente{
private float credito;
//... Get´s e Set´s }
login:Stringidade:Stringnome:String
DiarioMensal
Cliente
ultimaLocacaocredito:float
![Page 36: Introdução Configuração Padrão POJO Framework Mapeamento ... · Separação entre a aplicação e o acesso ao ... Hibernate Prof. Enzo Seraphim Introdução Configuração Padrão](https://reader031.fdocuments.net/reader031/viewer/2022020318/5beceaa809d3f2ed1c8c1d14/html5/thumbnails/36.jpg)
Generalização
package br.edu.unifei.bd.locadora;...@Entity@DiscriminatorValue(value="Diario")public class Diario extends Cliente{
private float credito;
//... Get´s e Set´s }
login:Stringidade:Stringnome:String
DiarioMensal
Cliente
ultimaLocacaocredito:float
![Page 37: Introdução Configuração Padrão POJO Framework Mapeamento ... · Separação entre a aplicação e o acesso ao ... Hibernate Prof. Enzo Seraphim Introdução Configuração Padrão](https://reader031.fdocuments.net/reader031/viewer/2022020318/5beceaa809d3f2ed1c8c1d14/html5/thumbnails/37.jpg)
Framework Pesistência de
ObjetosHibernate
Prof. Enzo Seraphim
Introdução
Configuração
Padrão POJO
Mapeamento Annotation
PersistênciaObjetos
![Page 38: Introdução Configuração Padrão POJO Framework Mapeamento ... · Separação entre a aplicação e o acesso ao ... Hibernate Prof. Enzo Seraphim Introdução Configuração Padrão](https://reader031.fdocuments.net/reader031/viewer/2022020318/5beceaa809d3f2ed1c8c1d14/html5/thumbnails/38.jpg)
Trabalhando com persistencia
emf:EntityManagerFactory
persistence.xml
createEntityManager()
createEntityManager
persistpersistpersist
:EntityTransaction
begin()commit()
getTransactionem:EntityManager
getTransaction()persist()
c1:Cliente
login="ze"cpf="123456789"nome="Jose Silva"
l1:Locacao
id="1"locacaodevolucao
f1:Filme
codigo="1"nome="HP 1"
* 1
![Page 39: Introdução Configuração Padrão POJO Framework Mapeamento ... · Separação entre a aplicação e o acesso ao ... Hibernate Prof. Enzo Seraphim Introdução Configuração Padrão](https://reader031.fdocuments.net/reader031/viewer/2022020318/5beceaa809d3f2ed1c8c1d14/html5/thumbnails/39.jpg)
EntityManagerFactory (javax.persistence)
Threadsafe Fábrica de EntityManager Geralmente se usa uma por aplicação Montada a partir de
– código java– arquivo configuração (persistence.xml)
public static void main (String [] args ){ EntityManagerFactory emf = Persistence.createEntityManagerFactory( "locadoraPU"); ... emf.close();}
![Page 40: Introdução Configuração Padrão POJO Framework Mapeamento ... · Separação entre a aplicação e o acesso ao ... Hibernate Prof. Enzo Seraphim Introdução Configuração Padrão](https://reader031.fdocuments.net/reader031/viewer/2022020318/5beceaa809d3f2ed1c8c1d14/html5/thumbnails/40.jpg)
Trabalhando com persistencia
emf:EntityManagerFactory
persistence.xml
createEntityManager()
createEntityManager
persistpersistpersist
:EntityTransaction
begin()commit()
getTransactionem:EntityManager
getTransaction()persist()
c1:Cliente
login="ze"cpf="123456789"nome="Jose Silva"
l1:Locacao
id="1"locacaodevolucao
f1:Filme
codigo="1"nome="HP 1"
* 1
![Page 41: Introdução Configuração Padrão POJO Framework Mapeamento ... · Separação entre a aplicação e o acesso ao ... Hibernate Prof. Enzo Seraphim Introdução Configuração Padrão](https://reader031.fdocuments.net/reader031/viewer/2022020318/5beceaa809d3f2ed1c8c1d14/html5/thumbnails/41.jpg)
EntityManager (javax.persistence)
Representa a troca de informações entre aplicação e o esquema da base de dados
Tem uma transação (getTransaction)– persistir objeto (persist)– remover objeto (remove)– consulta SQL (createQuery)public static void main (String [] args ){ EntityManagerFactory emf = Persistence.createEntityManagerFactory( "locadoraPU"); EntityManager em = emf.createEntityManager(); ... em.close(); emf.close();}
![Page 42: Introdução Configuração Padrão POJO Framework Mapeamento ... · Separação entre a aplicação e o acesso ao ... Hibernate Prof. Enzo Seraphim Introdução Configuração Padrão](https://reader031.fdocuments.net/reader031/viewer/2022020318/5beceaa809d3f2ed1c8c1d14/html5/thumbnails/42.jpg)
Trabalhando com persistencia
emf:EntityManagerFactory
persistence.xml
createEntityManager()
createEntityManager
persistpersistpersist
:EntityTransaction
begin()commit()
getTransactionem:EntityManager
getTransaction()persist()
c1:Cliente
login="ze"cpf="123456789"nome="Jose Silva"
l1:Locacao
id="1"locacaodevolucao
f1:Filme
codigo="1"nome="HP 1"
* 1
![Page 43: Introdução Configuração Padrão POJO Framework Mapeamento ... · Separação entre a aplicação e o acesso ao ... Hibernate Prof. Enzo Seraphim Introdução Configuração Padrão](https://reader031.fdocuments.net/reader031/viewer/2022020318/5beceaa809d3f2ed1c8c1d14/html5/thumbnails/43.jpg)
EntityTransaction (javax.persistence)
Representa a transação com a base de dados que deve ser iniciada (begin) para a persistência e em seguida pode ser:
Confirmada(commit) – gravar Objeto Cancelada(rollback) – não gravar objeto
public static void main (String [] args ){ EntityManagerFactory emf = Persistence.createEntityManagerFactory( "locadoraPU"); EntityManager em = emf.createEntityManager(); em.getTransaction().begin(); ... em.getTransaction().commit(); em.close(); emf.close();}
![Page 44: Introdução Configuração Padrão POJO Framework Mapeamento ... · Separação entre a aplicação e o acesso ao ... Hibernate Prof. Enzo Seraphim Introdução Configuração Padrão](https://reader031.fdocuments.net/reader031/viewer/2022020318/5beceaa809d3f2ed1c8c1d14/html5/thumbnails/44.jpg)
Trabalhando com persistencia
emf:EntityManagerFactory
persistence.xml
createEntityManager()
createEntityManager
persistpersistpersist
:EntityTransaction
begin()commit()
getTransactionem:EntityManager
getTransaction()persist()
c1:Cliente
login="ze"cpf="123456789"nome="Jose Silva"
l1:Locacao
id="1"locacaodevolucao
f1:Filme
codigo="1"nome="HP 1"
* 1
![Page 45: Introdução Configuração Padrão POJO Framework Mapeamento ... · Separação entre a aplicação e o acesso ao ... Hibernate Prof. Enzo Seraphim Introdução Configuração Padrão](https://reader031.fdocuments.net/reader031/viewer/2022020318/5beceaa809d3f2ed1c8c1d14/html5/thumbnails/45.jpg)
Inserindo um objetoEntityManagerFactory emf=
Persistence.createEntityManagerFactory( "locadoraPU");EntityManager em=emf.createEntityManager();em.getTransaction().begin();Filme f1 = new Filme();f1.setNome("HP 1");em.persist(f1);Cliente c1 = new Cliente();c1.setCpf("123456789");c1.setLogin("Jose Silva");c1.setLogin("ze");em.persist(c1);em.getTransaction().commit();em.close();emf.close();
![Page 46: Introdução Configuração Padrão POJO Framework Mapeamento ... · Separação entre a aplicação e o acesso ao ... Hibernate Prof. Enzo Seraphim Introdução Configuração Padrão](https://reader031.fdocuments.net/reader031/viewer/2022020318/5beceaa809d3f2ed1c8c1d14/html5/thumbnails/46.jpg)
Carregando e Alterando um Objeto
EntityManagerFactory emf= Persistence.createEntityManagerFactory(
"locadoraPU");EntityManager em=emf.createEntityManager();em.getTransaction().begin();
Cliente c1 = (Cliente)em.createQuery ("from Cliente c where c.login = 'ze'"). getSingleResult();c1.setNome("José Siqueira");
em.persist(c1);em.getTransaction().commit();em.close();emf.close();
![Page 47: Introdução Configuração Padrão POJO Framework Mapeamento ... · Separação entre a aplicação e o acesso ao ... Hibernate Prof. Enzo Seraphim Introdução Configuração Padrão](https://reader031.fdocuments.net/reader031/viewer/2022020318/5beceaa809d3f2ed1c8c1d14/html5/thumbnails/47.jpg)
Carregando e Exluindo um Objeto
EntityManagerFactory emf= Persistence.createEntityManagerFactory(
"locadoraPU");EntityManager em=emf.createEntityManager();em.getTransaction().begin();
Locacao l1 = (Locacao)em.createQuery( "from Locacao l where l.id = 1"). getSingleResult(); em.remove(l1);em.getTransaction().commit();em.close();emf.close();
![Page 48: Introdução Configuração Padrão POJO Framework Mapeamento ... · Separação entre a aplicação e o acesso ao ... Hibernate Prof. Enzo Seraphim Introdução Configuração Padrão](https://reader031.fdocuments.net/reader031/viewer/2022020318/5beceaa809d3f2ed1c8c1d14/html5/thumbnails/48.jpg)
Framework Pesistência de
ObjetosJava
Prof. Enzo Seraphim
Os logotipos, marcas comerciais e nomes de produtos citados nesta
publicação tem apenas o propósitos de
identificação e podem ser marcas registradas de
suas respectivas companhias.