Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouMaria do Pilar Salvado Alvarenga Alterado mais de 8 anos atrás
1
Desenvolvimento WEB II Professora: Kelly de Paula Cunha
2
JPA – Java Persistence API e Hibernate O que é um dado persistente?
3
JPA – Java Persistence API e Hibernate O que é um dado persistente? Os dados podem ser transientes ou persistentes - Transientes: somente são válidos dentro de um programa ou transação, eles se perdem quando o programa ou transação termina -Persistentes: sobrevivem a várias invocações de programas
4
JPA – Java Persistence API e Hibernate ORM (Mapeamento objeto-relacional): técnica de desenvolvimento utilizada para facilitar a integração entre a programação orientada a objetos e o banco de dados relacional. - As tabelas do banco de dados são representadas através de classes e os registros de cada tabela são representados como instâncias das classes correspondentes. -Com esta técnica, o programador não precisa se preocupar com os comandos em linguagem SQL; ele irá usar uma interface de programação simples que faz todo o trabalho de persistência.
5
JPA – Java Persistence API e Hibernate ID: Nome: Renda: Usuário IDNomeRenda 1João3000,00 2Fernanda1500,00 3Paulo750,00 public void incAltExc (){ try{ retorno=st.executeUpdate("insert into cliente values (" + varId +",'" + varNome +"', " + varRenda +")";); } catch (SQLException e){ retorno = -1; } Tabela no Banco de Dados
6
JPA – Java Persistence API e Hibernate ID: Nome: Renda: Usuário IDNomeRenda 1João3000,00 2Fernanda1500,00 3Paulo750,00 Tabela no Banco de Dados OMR
7
JPA – Java Persistence API e Hibernate O código SQL é gerado automaticamente para o banco de dados específico que está sendo utilizado na aplicação - Agiliza o desenvolvimento, já que o programador não precisa escrever comandos SQL - Possibilidade de trocar de banco de dados sem ter que alterar códigos em Java, já que isso fica como responsabilidade da ferramenta.
8
JPA – Java Persistence API e Hibernate -Dentre os mapeadores de banco de dados existentes no mercado, o Hibernate se destaca pela popularidade -Ferramenta ORM open source da jBoss
9
JPA – Java Persistence API e Hibernate ID: Nome: Renda: Usuário IDNomeRenda 1João3000,00 2Fernanda1500,00 3Paulo750,00 Tabela no Banco de Dados OMR = Hibernate
10
JPA – Java Persistence API e Hibernate -Surgiu a necessidade de fazer uma especificação de como fazer um Java Persistence -Java propõe uma API de referência chamada Java Persistece API (JPA) -Existem várias implementações de JPA -Hibernate é apenas uma implementação de JPA
11
JPA – Java Persistence API e Hibernate O que é o JPA? É uma API para persistir objetos. Por meio do JPA qualquer objeto com um construtor padrão pode ser persistente sem nenhuma alteração no código.
12
JPA – Java Persistence API e Hibernate JPA é um modelo de persistência baseado em POJO (Plain Old Java Object) - Velho e Simples Objeto Java – objetos que possuem design simples, não dependem da herança de interface ou classe de frameworks externos.
13
JPA – Java Persistence API e Hibernate A forma como este mapeamento é configurado depende da ferramenta utilizada. Exemplo: o programador que usa Hibernate na linguagem Java pode usar arquivos XML ou o sistema de anotações. Em outros casos o mapeamento é feito diretamente no código, através de herança de classes especiais
14
JPA – Java Persistence API e Hibernate Anotação: recurso do Java que permite inserir metadados relacionados com a classe, atributos e métodos. Essas anotações poderão ser lidas por frameworks e bibliotecas, para que tomem decisões baseadas nessas configurações. Ex: @Entity //indica que os objetos da classe se tornam persistíveis no banco de dados.
15
JPA – Java Persistence API e Hibernate Principais Anotações JPA:
16
JPA – Java Persistence API e Hibernate Observação: Apesar do Hibernate ter originado a JPA o EclipseLink é a implementação referencial.
17
JPA – Java Persistence API e Hibernate Entidade na JPA -Toda entidade tem de ter um construtor sem argumentos -Cada atributo deve possuir seu get e set -Toda entidade tem de ter uma chave primária
18
JPA – Java Persistence API e Hibernate Entidade na JPA Exemplo: @Entity public class Tarefa { @Id @GeneratedValue private Long id; private String descricao; private boolean finalizado; @Temporal(TemporalType.DATE) private Calendar dataFinalizacao; // métodos... }
19
JPA – Java Persistence API e Hibernate Explicação: @Id indica que o atributo id é chave primária @GeneratedValue diz que esta chave fará auto increment ou sequence, dependendo do banco de dados. @Temporal configura como mapear um Calendar para o banco, aqui usamos apenas a data (sem hora), mas poderíamos ter usado apenas a hora (TemporalType.TIME) ou timestamp (TemporalType.TIMESTAMP). Observações: Essas anotações precisam dos devidos imports, e pertencem ao pacote javax.persistence.
20
JPA – Java Persistence API e Hibernate Na ausência de configurações mais específicas, o Hibernate vai usar convenções: a classe Tarefa será gravada na tabela de nome também Tarefa, e o atributo descricao em uma coluna de nome descricao Se quisermos configurações diferentes das convenções, basta usarmos outras anotações, que são completamente opcionais. Exemplo: para mapear o atributo dataFinalizacao numa coluna chamada data_finalizado faríamos: @Column(name = "data_finalizado", nullable = true) private Calendar dataFinalizacao;
21
JPA – Java Persistence API e Hibernate O JPA necessita de configurações, e para isso criaremos o arquivo persistence.xml. Alguns dados que vão nesse arquivo são específicos do Hibernate e podem ser bem avançados, sobre controle de cache, transações, connection pool etc, tópicos que são abordados no curso FJ-25. Para um sistema simples, é necessário 4 linhas : 1)string de conexão com o banco, 2)o driver, 3)o usuário e 4)senha. Além dessas quatro configurações, é necessário dizer qual dialeto de SQL deverá ser usado no momento que as queries são geradas; no nosso caso, MySQL.
22
JPA – Java Persistence API e Hibernate Segue uma configuração completa que define uma unidade de persistência (persistence-unit) com o nome tarefas, seguidos pela definição do provedor, entidades e properties:
23
JPA – Java Persistence API e Hibernate org.hibernate.ejb.HibernatePersistence br.com.caelum.tarefas.modelo.Tarefa
24
JPA – Java Persistence API e Hibernate U SANDO O JPA Primeiro passo: fazer com que o JPA leia a configuração tanto o arquivo persistence.xml quanto as anotações que colocadas na entidade Tarefa. Para tal, usaremos a classe principal. Ela é responsável de carregar o XML e inicializar as configurações: EntityManagerFactory factory = Persistence.createEntityManagerFactory("tarefas");
25
JPA – Java Persistence API e Hibernate Antes de gravar uma Tarefa, é necessário que exista a tabela correspondente no nosso banco de dados. Em vez de criarmos o script que define o schema (ou DDL de um banco, data definition language) do nosso banco (os famosos CREATE TABLE....) podemos deixar isto a cargo do próprio Hibernate. Ao inicializar a EntityManagerFactory também será gerada uma tabela Tarefas pois configuramos que o banco deve ser atualizada pela propriedade do Hibernate: hbm2ddl.auto.
26
JPA – Java Persistence API e Hibernate classe GeraTabelas public class GeraTabelas { public static void main(String[] args) { EntityManagerFactory factory = Persistence. createEntityManagerFactory("tarefas"); factory.close(); }
27
JPA – Java Persistence API e Hibernate O JPA possui uma linguagem própria de queries para facilitar a busca de objetos chamada de JPQL. O código a seguir mostra uma pesquisa que retorna todas as tarefas não finalizadas: EntityManager manager = List lista = manager.createQuery("select t from Tarefa as t where t.finalizado = false").getResultList(); for (Tarefa tarefa : lista) { System.out.println(tarefa.getDescricao()); }
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.