SlideShare una empresa de Scribd logo
1 de 18
Descargar para leer sin conexión
Programação II - Prof. Fernando dos Santos




                          Mapeamento Objeto-Relacional:
                           Java Persistence API (JPA)

                                                Fernando dos Santos
                                             fernando.santos@udesc.br
Programação II - Prof. Fernando dos Santos




   Roteiro
   • Introdução
   • Mapeamento de uma entidade (classe)
   • Configuração e uso da persistência




                                             2
Programação II - Prof. Fernando dos Santos




   Mapeamento Objeto-Relacional
   • É o mapeamento de classes e seus relacionamentos, para
     tabelas em um banco de dados relacional.
          –   criação de objeto   insert no banco de dados
          –   alteração de objeto   update no banco de dados
          –   remoção de objeto     delete no banco de dados
          –   associação de objetos     chaves estrageiras no banco de dados


   • No princípio, os objetos eram mapeados “a força”:
          – O desenvolvedor codificava os comandos SQL para cada classe e
            seus relacionamentos.
   • Atualmente, o mapeamento é automático
          – O Java se encarrega de gerar os comandos SQL no banco;
          – Aumento de produtividade.

                                                                               3
Programação II - Prof. Fernando dos Santos




   Java Persistence API (JPA)
   • Biblioteca Java para realizar mapeamento objeto-relacional:
          – Metadados (anotações) para mapeamento;
          – Gerenciamento da persistência;
          – Linguagem de consulta.


   • A JPA define apenas o padrão. Há várias implementações, que
     traduzem os objetos e seus relacionamentos em comandos SQL:
          – Hibernate
          – Toplink
          – ...




                                                                   4
Programação II - Prof. Fernando dos Santos




   Entidade
   • É um objeto persistente do domínio de negócio.
           – A classe da entidade representa uma tabela de banco de dados;
           – Um objeto da entidade representa uma linha na tabela.



                       Produto

       -     id: int
       -     nome: String
       -     descricao: String
       -     precoUnitario: float

       +     métodos get()/set() : void



                                                                             5
Programação II - Prof. Fernando dos Santos




   Mapeamento de Entidades: etapa 1
   • Incluir bibliotecas no projeto NetBeans.
          – Hibernate JPA
          – MySQL JDBC Driver (ou o driver de outro banco)
   • Criar a classe dentro de um pacote modelo
   • Fazer a classe realizar a interface java.io.Serializable
              package modelo;

              import java.io.Serializable;

              public class Produto implements Serializable{

   • Adicionar anotações de mapeamento na classe.
          – As anotações são do pacote javax.persistence
              @Entity
              @Table(name="produto")
              public class Produto implements Serializable{
                                                                6
Programação II - Prof. Fernando dos Santos




   Mapeamento de Entidades: etapa 2
   • Adicionar anotações de mapeamento nos atributos.
         @Entity
         @Table(name="produto")
         public class Produto implements Serializable{
             @Id
             @GeneratedValue
             private int id;
             @Column(name="nome")
             private String nome;
             @Column(name="descricao")
             private String descricao;
             @Column(name=“valor_unitario")
             private float precoUnitario;

                // métodos get() e set()
         }                                               7
Programação II - Prof. Fernando dos Santos




   Anotações para Mapeamento de Entidades
   • @Entity
          – Define que a classe é uma entidade persistente e será mapeada
            para uma tabela de banco de dados
   • @Table
          – Define a tabela da entidade. Opcional (padrão = nome classe)
   • @Column
          – Mapeia o atributo para uma coluna da tabela.
                 • name: identifica o nome da coluna. Opcional (padrão = nome atributo)
   • @Id
          – Identifica o atributo/coluna que é a chave primária da entidade.
          – Caso nome da coluna seja diferente do atributo, deve-se utilizar
            @Column conjuntamente para identificar a coluna.
   • @GeneratedValue
          – Define que o valor do campo é gerado automaticamente pelo banco
                                                                                      8
Programação II - Prof. Fernando dos Santos




   @Column: parâmetros adicionais
   • @Column(name=“nome”, lenght=10)
          – Validação do tamanho do campo

   • @Column(name=“senha”, nullable=false)
          – Validação de campo NOT NULL

   • @Column(name=“valor”, precision=5, scale=2)
          – precision: quantidade de dígitos antes da vírgula
          – scale: quantidade de dígitos após a vírgula

   • @Column(name=“qualquer”, insertable=false, updatable=false)
          – Restringe inserção e atualização do campo


                                                                9
Programação II - Prof. Fernando dos Santos



   Configuração da Persistência
   Persistence Unit (Unidade de Persistência)

   • A unidade de persistência define:
          – qual implementação de JPA é utilizada: Hibernate
          – parâmetros para conexão com o banco de dados
          – quais classes são mapeadas para o banco de dados

   • Fica em: META-INF/persistence.xml




                                                               10
Programação II - Prof. Fernando dos Santos




   Configuração da Persistência no NetBeans
   • transparências auxiliares




                                              11
Programação II - Prof. Fernando dos Santos




   Uso do contexto de persistência (1)
   • Operações de persistência são realizadas a partir do contexto de
     persistência – Entity Manager.
          – select / insert / update / delete
   • o contexto de persistência funciona como um “cache” :
          – contém as entidades relacionadas com o banco – gerenciadas.

   • Recuperação do contexto de persistência
          – considerando a unidade de persistência:
                             <persistence-unit name="SistemaVendasPU" ... >


          – contexto de persistência – Entity Manager:
          EntityManagerFactory emf =
                          Persistence.createEntityManagerFactory("SistemaVendasPU");
          EntityManager em = emf.createEntityManager();
                                                                              12
Programação II - Prof. Fernando dos Santos




   Uso do contexto de persistência (2)
   • Inserindo entidades no contexto: persist()
    EntityManagerFactory emf =
                Persistence.createEntityManagerFactory("SistemaVendasPU");
    EntityManager em = emf.createEntityManager();

    Produto prod1 = new Produto();
    prod1.setNome("Açucar");
    prod1.setDescricao("Açucar de cana refinado");
    prod1.setPrecoUnitario(2);

    em.persist(prod1);

    em.close();
    emf.close();



   • Fechando o contexto para liberar recursos.
                                                                             13
Programação II - Prof. Fernando dos Santos




   Uso do contexto de persistência (3)
   • Por padrão, toda transação é finalizada com rollback.
          – Este é o motivo que o insert “não inseriu”.
   • Para efetivar as operações, é necessário iniciar uma transação e
     finalizar com commit.
    Produto prod1 = new Produto();
    // setar os atributos do produto...

    em.getTransaction().begin();

    em.persist(prod1);

    em.getTransaction.commit();

    em.close();
    emf.close();

                                                                  14
Programação II - Prof. Fernando dos Santos




   Uso do contexto de persistência (4)
   • Outras operações, consulte a atividade que você fez e entregou
     no AAGI sobre Mapeamento Objeto-Relacional com JPA.




                                                                 15
Programação II - Prof. Fernando dos Santos




   Uso do contexto de persistência (5)
   • Consulta básica: buscar todas as entidades no banco:

       Query consulta1 = em.createQuery("select p from Produto p");
       List<Produto> produtos = consulta1.getResultList();
       for(Produto prod : produtos){
          System.out.println("Nome: "+prod.getNome());
       }




                                                                      16
Programação II - Prof. Fernando dos Santos




   Exercício
   • Criar uma classe para representar a entidade abaixo.




   • Criar um sistema capaz de realizar as seguintes operações:
          –   cadastrar Imovel
          –   alterar Imóvel
          –   remover Imóvel pelo código (id)
          –   listar todos os imóveis cadastrados
                                                                  17
Programação II - Prof. Fernando dos Santos




   Bibliografia
   • BAUER, Christian; KING, Gavin. Java Persistence com
     Hibernate. Rio de Janeiro: Ciência Moderna, 2007. 844 p.

   • BURKE, Bill; MONSON-HAEFEL, Richard. Enterprise
     JavaBeans 3.0. 5.ed. São Paulo: Prentice Hall, 2007. 538 p.

   • The Java EE 6 Tutorial, parte VI (Persistence)
          – http://download.oracle.com/javaee/6/tutorial/doc/




                                                                   18

Más contenido relacionado

La actualidad más candente

La actualidad más candente (15)

Weka básico
Weka básicoWeka básico
Weka básico
 
Hibernate-consultas
Hibernate-consultasHibernate-consultas
Hibernate-consultas
 
Curso Java Basico
Curso Java BasicoCurso Java Basico
Curso Java Basico
 
Java 14
Java 14Java 14
Java 14
 
Aula05
Aula05Aula05
Aula05
 
Curso Java Básico - Aula02
Curso Java Básico - Aula02Curso Java Básico - Aula02
Curso Java Básico - Aula02
 
Mini curso hibernate com anotações
Mini curso hibernate com anotaçõesMini curso hibernate com anotações
Mini curso hibernate com anotações
 
Curso Java Básico - Aula 03
Curso Java Básico - Aula 03Curso Java Básico - Aula 03
Curso Java Básico - Aula 03
 
Curso Java Básico - Aula 04
Curso Java Básico - Aula 04Curso Java Básico - Aula 04
Curso Java Básico - Aula 04
 
Hibernate conceitos
Hibernate conceitosHibernate conceitos
Hibernate conceitos
 
v
vv
v
 
Conceitos Básicos de OO e Java
Conceitos Básicos de OO e JavaConceitos Básicos de OO e Java
Conceitos Básicos de OO e Java
 
Java EE 6 JPA 2.0, EJB 3.1 e CDI 1.0
Java EE 6 JPA 2.0, EJB 3.1 e CDI 1.0Java EE 6 JPA 2.0, EJB 3.1 e CDI 1.0
Java EE 6 JPA 2.0, EJB 3.1 e CDI 1.0
 
Semana 8: Classes e instâncias, cadeias de caracteres
Semana  8: Classes e instâncias, cadeias de caracteresSemana  8: Classes e instâncias, cadeias de caracteres
Semana 8: Classes e instâncias, cadeias de caracteres
 
Weka em aplicações java
Weka em aplicações javaWeka em aplicações java
Weka em aplicações java
 

Destacado

INTERFACES para o USUÁRIO - a base de um sistema de gerenciamento para restau...
INTERFACES para o USUÁRIO - a base de um sistema de gerenciamento para restau...INTERFACES para o USUÁRIO - a base de um sistema de gerenciamento para restau...
INTERFACES para o USUÁRIO - a base de um sistema de gerenciamento para restau...Michel Souza
 
Boas práticas com jpa 2 e hibernate flisol 2012
Boas práticas com jpa 2 e hibernate   flisol 2012Boas práticas com jpa 2 e hibernate   flisol 2012
Boas práticas com jpa 2 e hibernate flisol 2012Frederico Maia Arantes
 
Workshop modelando usuários, tarefas e idéias
Workshop modelando usuários, tarefas e idéiasWorkshop modelando usuários, tarefas e idéias
Workshop modelando usuários, tarefas e idéiasKarine Drumond
 
Processos iniciais do mapeamento OR
Processos iniciais do mapeamento ORProcessos iniciais do mapeamento OR
Processos iniciais do mapeamento ORNécio de Lima Veras
 
Sistema de gestão de restaurantes self service - ultima versão 3
Sistema de gestão de restaurantes self   service - ultima versão 3Sistema de gestão de restaurantes self   service - ultima versão 3
Sistema de gestão de restaurantes self service - ultima versão 3brunogea
 
Introdução ao JPA com Hibernate
Introdução ao JPA com HibernateIntrodução ao JPA com Hibernate
Introdução ao JPA com HibernateDanilo Braga
 
Persistência com JPA usando o NetBeans 7
Persistência com JPA usando o NetBeans 7Persistência com JPA usando o NetBeans 7
Persistência com JPA usando o NetBeans 7Claudio Martins
 
Restaurante
RestauranteRestaurante
Restaurantemarcuzu
 
Persistência Java: Hibernate e JPA
Persistência Java: Hibernate e JPAPersistência Java: Hibernate e JPA
Persistência Java: Hibernate e JPACaelum
 
Apostila Java Web com JSF, JPA e Primefaces
Apostila Java Web com JSF, JPA e PrimefacesApostila Java Web com JSF, JPA e Primefaces
Apostila Java Web com JSF, JPA e PrimefacesRosicleia Frasson
 

Destacado (16)

Apresentação mapeamento objeto relacional
Apresentação mapeamento objeto relacionalApresentação mapeamento objeto relacional
Apresentação mapeamento objeto relacional
 
Minicurso jpa e hibernate
Minicurso jpa e hibernateMinicurso jpa e hibernate
Minicurso jpa e hibernate
 
INTERFACES para o USUÁRIO - a base de um sistema de gerenciamento para restau...
INTERFACES para o USUÁRIO - a base de um sistema de gerenciamento para restau...INTERFACES para o USUÁRIO - a base de um sistema de gerenciamento para restau...
INTERFACES para o USUÁRIO - a base de um sistema de gerenciamento para restau...
 
Hibernate
HibernateHibernate
Hibernate
 
Hibernate
HibernateHibernate
Hibernate
 
Jpa, hibernate and jpql
Jpa, hibernate and jpqlJpa, hibernate and jpql
Jpa, hibernate and jpql
 
Boas práticas com jpa 2 e hibernate flisol 2012
Boas práticas com jpa 2 e hibernate   flisol 2012Boas práticas com jpa 2 e hibernate   flisol 2012
Boas práticas com jpa 2 e hibernate flisol 2012
 
Workshop modelando usuários, tarefas e idéias
Workshop modelando usuários, tarefas e idéiasWorkshop modelando usuários, tarefas e idéias
Workshop modelando usuários, tarefas e idéias
 
Processos iniciais do mapeamento OR
Processos iniciais do mapeamento ORProcessos iniciais do mapeamento OR
Processos iniciais do mapeamento OR
 
Aula JPA
Aula JPAAula JPA
Aula JPA
 
Sistema de gestão de restaurantes self service - ultima versão 3
Sistema de gestão de restaurantes self   service - ultima versão 3Sistema de gestão de restaurantes self   service - ultima versão 3
Sistema de gestão de restaurantes self service - ultima versão 3
 
Introdução ao JPA com Hibernate
Introdução ao JPA com HibernateIntrodução ao JPA com Hibernate
Introdução ao JPA com Hibernate
 
Persistência com JPA usando o NetBeans 7
Persistência com JPA usando o NetBeans 7Persistência com JPA usando o NetBeans 7
Persistência com JPA usando o NetBeans 7
 
Restaurante
RestauranteRestaurante
Restaurante
 
Persistência Java: Hibernate e JPA
Persistência Java: Hibernate e JPAPersistência Java: Hibernate e JPA
Persistência Java: Hibernate e JPA
 
Apostila Java Web com JSF, JPA e Primefaces
Apostila Java Web com JSF, JPA e PrimefacesApostila Java Web com JSF, JPA e Primefaces
Apostila Java Web com JSF, JPA e Primefaces
 

Similar a 2 1-jpa-mapeamento-simples

4 1-jpa-relacionamentos-many-to-one
4 1-jpa-relacionamentos-many-to-one4 1-jpa-relacionamentos-many-to-one
4 1-jpa-relacionamentos-many-to-oneLukinha92
 
4 1-jpa-relacionamentos-many-to-one
4 1-jpa-relacionamentos-many-to-one4 1-jpa-relacionamentos-many-to-one
4 1-jpa-relacionamentos-many-to-oneLukinha92
 
2 2-unidade-persistencia
2 2-unidade-persistencia2 2-unidade-persistencia
2 2-unidade-persistenciaLukinha92
 
Sistemas Distribuídos - Comunicação Distribuída - EJB
Sistemas Distribuídos - Comunicação Distribuída - EJBSistemas Distribuídos - Comunicação Distribuída - EJB
Sistemas Distribuídos - Comunicação Distribuída - EJBAdriano Teixeira de Souza
 
Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)
Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)
Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)Adriano Teixeira de Souza
 
Qualidade e performance de sistemas 2.0
Qualidade e performance de sistemas 2.0Qualidade e performance de sistemas 2.0
Qualidade e performance de sistemas 2.0Ivo Nascimento
 
5 jpa-heranca
5 jpa-heranca5 jpa-heranca
5 jpa-herancaLukinha92
 
4 2-jpa-relacionamentos-one-to-many
4 2-jpa-relacionamentos-one-to-many4 2-jpa-relacionamentos-one-to-many
4 2-jpa-relacionamentos-one-to-manyLukinha92
 
Spring framework 2.5
Spring framework 2.5Spring framework 2.5
Spring framework 2.5Diego Pacheco
 
Mini curso hibernate com anotações
Mini curso hibernate com anotaçõesMini curso hibernate com anotações
Mini curso hibernate com anotaçõesdieguinhomcz
 
55 New Things in Java 7 - Brazil
55 New Things in Java 7 - Brazil55 New Things in Java 7 - Brazil
55 New Things in Java 7 - BrazilStephen Chin
 
Teste de Integração - Unidade III
Teste de Integração - Unidade IIITeste de Integração - Unidade III
Teste de Integração - Unidade IIIJoão Lourenço
 
CDI Extensions e DeltaSpike
CDI Extensions e DeltaSpikeCDI Extensions e DeltaSpike
CDI Extensions e DeltaSpikeRafael Benevides
 
[NetPonto] Entity Framework 4 Code-First
[NetPonto] Entity Framework 4 Code-First[NetPonto] Entity Framework 4 Code-First
[NetPonto] Entity Framework 4 Code-FirstVitor Tomaz
 

Similar a 2 1-jpa-mapeamento-simples (20)

4 1-jpa-relacionamentos-many-to-one
4 1-jpa-relacionamentos-many-to-one4 1-jpa-relacionamentos-many-to-one
4 1-jpa-relacionamentos-many-to-one
 
4 1-jpa-relacionamentos-many-to-one
4 1-jpa-relacionamentos-many-to-one4 1-jpa-relacionamentos-many-to-one
4 1-jpa-relacionamentos-many-to-one
 
Doctrine for dummies
Doctrine for dummiesDoctrine for dummies
Doctrine for dummies
 
2 2-unidade-persistencia
2 2-unidade-persistencia2 2-unidade-persistencia
2 2-unidade-persistencia
 
Sistemas Distribuídos - Comunicação Distribuída - EJB
Sistemas Distribuídos - Comunicação Distribuída - EJBSistemas Distribuídos - Comunicação Distribuída - EJB
Sistemas Distribuídos - Comunicação Distribuída - EJB
 
Hibernate
HibernateHibernate
Hibernate
 
Java Seminar
Java SeminarJava Seminar
Java Seminar
 
Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)
Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)
Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)
 
Qualidade e performance de sistemas 2.0
Qualidade e performance de sistemas 2.0Qualidade e performance de sistemas 2.0
Qualidade e performance de sistemas 2.0
 
5 jpa-heranca
5 jpa-heranca5 jpa-heranca
5 jpa-heranca
 
4 2-jpa-relacionamentos-one-to-many
4 2-jpa-relacionamentos-one-to-many4 2-jpa-relacionamentos-one-to-many
4 2-jpa-relacionamentos-one-to-many
 
Spring framework 2.5
Spring framework 2.5Spring framework 2.5
Spring framework 2.5
 
Mini curso hibernate com anotações
Mini curso hibernate com anotaçõesMini curso hibernate com anotações
Mini curso hibernate com anotações
 
55 New Things in Java 7 - Brazil
55 New Things in Java 7 - Brazil55 New Things in Java 7 - Brazil
55 New Things in Java 7 - Brazil
 
Teste de Integração - Unidade III
Teste de Integração - Unidade IIITeste de Integração - Unidade III
Teste de Integração - Unidade III
 
CDI Extensions e DeltaSpike
CDI Extensions e DeltaSpikeCDI Extensions e DeltaSpike
CDI Extensions e DeltaSpike
 
Java 02
Java 02Java 02
Java 02
 
Hibernate - Aula 01
Hibernate - Aula 01Hibernate - Aula 01
Hibernate - Aula 01
 
[NetPonto] Entity Framework 4 Code-First
[NetPonto] Entity Framework 4 Code-First[NetPonto] Entity Framework 4 Code-First
[NetPonto] Entity Framework 4 Code-First
 
Entity Framework 4 Code-First
Entity Framework 4 Code-FirstEntity Framework 4 Code-First
Entity Framework 4 Code-First
 

2 1-jpa-mapeamento-simples

  • 1. Programação II - Prof. Fernando dos Santos Mapeamento Objeto-Relacional: Java Persistence API (JPA) Fernando dos Santos fernando.santos@udesc.br
  • 2. Programação II - Prof. Fernando dos Santos Roteiro • Introdução • Mapeamento de uma entidade (classe) • Configuração e uso da persistência 2
  • 3. Programação II - Prof. Fernando dos Santos Mapeamento Objeto-Relacional • É o mapeamento de classes e seus relacionamentos, para tabelas em um banco de dados relacional. – criação de objeto insert no banco de dados – alteração de objeto update no banco de dados – remoção de objeto delete no banco de dados – associação de objetos chaves estrageiras no banco de dados • No princípio, os objetos eram mapeados “a força”: – O desenvolvedor codificava os comandos SQL para cada classe e seus relacionamentos. • Atualmente, o mapeamento é automático – O Java se encarrega de gerar os comandos SQL no banco; – Aumento de produtividade. 3
  • 4. Programação II - Prof. Fernando dos Santos Java Persistence API (JPA) • Biblioteca Java para realizar mapeamento objeto-relacional: – Metadados (anotações) para mapeamento; – Gerenciamento da persistência; – Linguagem de consulta. • A JPA define apenas o padrão. Há várias implementações, que traduzem os objetos e seus relacionamentos em comandos SQL: – Hibernate – Toplink – ... 4
  • 5. Programação II - Prof. Fernando dos Santos Entidade • É um objeto persistente do domínio de negócio. – A classe da entidade representa uma tabela de banco de dados; – Um objeto da entidade representa uma linha na tabela. Produto - id: int - nome: String - descricao: String - precoUnitario: float + métodos get()/set() : void 5
  • 6. Programação II - Prof. Fernando dos Santos Mapeamento de Entidades: etapa 1 • Incluir bibliotecas no projeto NetBeans. – Hibernate JPA – MySQL JDBC Driver (ou o driver de outro banco) • Criar a classe dentro de um pacote modelo • Fazer a classe realizar a interface java.io.Serializable package modelo; import java.io.Serializable; public class Produto implements Serializable{ • Adicionar anotações de mapeamento na classe. – As anotações são do pacote javax.persistence @Entity @Table(name="produto") public class Produto implements Serializable{ 6
  • 7. Programação II - Prof. Fernando dos Santos Mapeamento de Entidades: etapa 2 • Adicionar anotações de mapeamento nos atributos. @Entity @Table(name="produto") public class Produto implements Serializable{ @Id @GeneratedValue private int id; @Column(name="nome") private String nome; @Column(name="descricao") private String descricao; @Column(name=“valor_unitario") private float precoUnitario; // métodos get() e set() } 7
  • 8. Programação II - Prof. Fernando dos Santos Anotações para Mapeamento de Entidades • @Entity – Define que a classe é uma entidade persistente e será mapeada para uma tabela de banco de dados • @Table – Define a tabela da entidade. Opcional (padrão = nome classe) • @Column – Mapeia o atributo para uma coluna da tabela. • name: identifica o nome da coluna. Opcional (padrão = nome atributo) • @Id – Identifica o atributo/coluna que é a chave primária da entidade. – Caso nome da coluna seja diferente do atributo, deve-se utilizar @Column conjuntamente para identificar a coluna. • @GeneratedValue – Define que o valor do campo é gerado automaticamente pelo banco 8
  • 9. Programação II - Prof. Fernando dos Santos @Column: parâmetros adicionais • @Column(name=“nome”, lenght=10) – Validação do tamanho do campo • @Column(name=“senha”, nullable=false) – Validação de campo NOT NULL • @Column(name=“valor”, precision=5, scale=2) – precision: quantidade de dígitos antes da vírgula – scale: quantidade de dígitos após a vírgula • @Column(name=“qualquer”, insertable=false, updatable=false) – Restringe inserção e atualização do campo 9
  • 10. Programação II - Prof. Fernando dos Santos Configuração da Persistência Persistence Unit (Unidade de Persistência) • A unidade de persistência define: – qual implementação de JPA é utilizada: Hibernate – parâmetros para conexão com o banco de dados – quais classes são mapeadas para o banco de dados • Fica em: META-INF/persistence.xml 10
  • 11. Programação II - Prof. Fernando dos Santos Configuração da Persistência no NetBeans • transparências auxiliares 11
  • 12. Programação II - Prof. Fernando dos Santos Uso do contexto de persistência (1) • Operações de persistência são realizadas a partir do contexto de persistência – Entity Manager. – select / insert / update / delete • o contexto de persistência funciona como um “cache” : – contém as entidades relacionadas com o banco – gerenciadas. • Recuperação do contexto de persistência – considerando a unidade de persistência: <persistence-unit name="SistemaVendasPU" ... > – contexto de persistência – Entity Manager: EntityManagerFactory emf = Persistence.createEntityManagerFactory("SistemaVendasPU"); EntityManager em = emf.createEntityManager(); 12
  • 13. Programação II - Prof. Fernando dos Santos Uso do contexto de persistência (2) • Inserindo entidades no contexto: persist() EntityManagerFactory emf = Persistence.createEntityManagerFactory("SistemaVendasPU"); EntityManager em = emf.createEntityManager(); Produto prod1 = new Produto(); prod1.setNome("Açucar"); prod1.setDescricao("Açucar de cana refinado"); prod1.setPrecoUnitario(2); em.persist(prod1); em.close(); emf.close(); • Fechando o contexto para liberar recursos. 13
  • 14. Programação II - Prof. Fernando dos Santos Uso do contexto de persistência (3) • Por padrão, toda transação é finalizada com rollback. – Este é o motivo que o insert “não inseriu”. • Para efetivar as operações, é necessário iniciar uma transação e finalizar com commit. Produto prod1 = new Produto(); // setar os atributos do produto... em.getTransaction().begin(); em.persist(prod1); em.getTransaction.commit(); em.close(); emf.close(); 14
  • 15. Programação II - Prof. Fernando dos Santos Uso do contexto de persistência (4) • Outras operações, consulte a atividade que você fez e entregou no AAGI sobre Mapeamento Objeto-Relacional com JPA. 15
  • 16. Programação II - Prof. Fernando dos Santos Uso do contexto de persistência (5) • Consulta básica: buscar todas as entidades no banco: Query consulta1 = em.createQuery("select p from Produto p"); List<Produto> produtos = consulta1.getResultList(); for(Produto prod : produtos){ System.out.println("Nome: "+prod.getNome()); } 16
  • 17. Programação II - Prof. Fernando dos Santos Exercício • Criar uma classe para representar a entidade abaixo. • Criar um sistema capaz de realizar as seguintes operações: – cadastrar Imovel – alterar Imóvel – remover Imóvel pelo código (id) – listar todos os imóveis cadastrados 17
  • 18. Programação II - Prof. Fernando dos Santos Bibliografia • BAUER, Christian; KING, Gavin. Java Persistence com Hibernate. Rio de Janeiro: Ciência Moderna, 2007. 844 p. • BURKE, Bill; MONSON-HAEFEL, Richard. Enterprise JavaBeans 3.0. 5.ed. São Paulo: Prentice Hall, 2007. 538 p. • The Java EE 6 Tutorial, parte VI (Persistence) – http://download.oracle.com/javaee/6/tutorial/doc/ 18