29
Introdução ao JPA com Hibernate Danilo Braga ICC - Software II

Introdução ao JPA com Hibernate

Embed Size (px)

DESCRIPTION

O Java Persistence API(JPA) é um framework utilizado para realizar a persistência dos objetos Java, com ele foi possível obter uma padronização na forma de persistir os dados. A implementação mais conhecida atualmente é o Hibernate, onde é possível diminuir a complexidade de uma aplicação Java – baseada no modelo Orientado a Objetos – para banco de dados que utilizam uma abordagem relacional.

Citation preview

Page 1: Introdução ao JPA com Hibernate

Introdução ao JPA com Hibernate

Danilo Braga

ICC - Software II

Page 2: Introdução ao JPA com Hibernate

Objetivos

O Conhecer os conceitos básicos

O JPA

O Hibernate

O Visão geral sobre mapeamento

objeto/relacional

http://www.desenvolvimentopessoal-dp.com/images/objetivos.png

Page 3: Introdução ao JPA com Hibernate

Sumário O Persistência de dados

O Conceitos básicos e tipos

O Foco na plataforma Java

O Mapeamento Objeto Relacional

O JPA

O Hibernate

O Como se aplica o JPA

O Conceitos principais

http://www.espargirica.com.br/negocio/figuras_negocio/objetivos_indices.jpg

Page 4: Introdução ao JPA com Hibernate

Conceitos básicos de Persistência

O A maioria das aplicações necessitam que

dados sejam persistidos

O Aplicações

O Busca e

armazenamento;

O Organização ;

O Compartilhamento

dos dados;

O Integridade dos

dados;

O Controle de

concorrência;

O …

Page 5: Introdução ao JPA com Hibernate

Conceitos básicos de Persistência

O Tipos de persistência

O Arquivos de textos simples(txt, xml, …)

O Banco de dados OO

O Banco de dados relacionais

http://sorisomail.com/img/129885606369.gif http://www.wp7connect.com/wp-content/uploads/2011/09/file-cabinet.jpg

Page 6: Introdução ao JPA com Hibernate

Conceitos básicos de Persistência

O Escrita demasiada de código

O Repetitivo e de difícil manutenção

O Produtividade fortemente afetada

O Modelagem dos objetos fica

prejudicada

O Outras camadas ficam acopladas à

Camada de Persistência

Bancos de Dados Relacionais Vs Linguagens OO

Page 7: Introdução ao JPA com Hibernate

ORM

O ORM – Mapeamento Objeto-Relacional

O Permite a construção de sistemas O.O.

utilizando a persistência dos objetos em

BD relacionais.

O Converte objetos em linhas, colunas e

relacionamentos entre tabelas

Page 8: Introdução ao JPA com Hibernate

ORM

Relacional O.O.

O.O. Relacional

Page 9: Introdução ao JPA com Hibernate

Java Persistence API (JPA)

O Especificado pelo Java Community Process

O JSR 317 - 2006

O Baseou-se em diversas soluções existentes.

O Frameworks passaram a implementar esta

especificação

O Recursos são um sub-conjunto dos encontrados

nos frameworks que a implementam

Page 10: Introdução ao JPA com Hibernate

Java Persistence API (JPA)

O Configuração através de @Annotations

O É um padrão JavaEE(a partir do Java 5)

O Implementações Disponíveis

O Hibernate - JBoss

O TopLink - Oracle

O OpenJPA - Apache

O EclipseLink - Eclipse

O Entre outros...

Page 11: Introdução ao JPA com Hibernate

O Criado para padronizar as ferramentas de ORM

O Forma de diminuir a complexidade do desenvolvimento em alguns casos.

O Gerência de Transações

O Cache

O JPQL – Java Persistence Query Language

Java Persistence API (JPA)

JPA não é Hibernate !! Especificação vs. Implementação

Page 12: Introdução ao JPA com Hibernate

Hibernate

O Framework de mapeamento Objeto-Relacional

O Cria uma interface entre a base de dados relacional e

a aplicação orientada a objetos

O Framework de persistência Java mais utilizado e

documentado

O Suporta classes desenvolvidas com agregação,

herança, polimorfismo, composição e coleções

Page 13: Introdução ao JPA com Hibernate

Hibernate

O Abstrai o banco de dados utilizado

O suporte para praticamente todos os bancos

de dados comerciais

O Gera código SQL a partir dos

mapeamentos criados

Page 14: Introdução ao JPA com Hibernate

Hibernate - Vantagens

O Produtividade

O Exclui a necessidade de se escrever código

referente a persistência

O Permite criação de DAO genérico

O Possui mecanismos de cache e lazy

O Facilita no controle de transaçõoes

O Manutenbilidade

O Menos linhas de códigos

O Facilita a refatoração

Page 15: Introdução ao JPA com Hibernate

Hibernate - Desvantagens

O Overheads

O Algumas consultas podem ser otimizadas se

escritas em SQL

O Operações que utilizam JDBC puro podem ser

mais rápidas

O Nem todas as operações podem ser realizadas

utilizando Hibernate

O Realizar o mapeamento das classes pode não

ser um tarefa trivial

Page 16: Introdução ao JPA com Hibernate

JPA - Por onde começar

O Definir unidade persistência

O Mapear (anotar) Classes

Page 17: Introdução ao JPA com Hibernate

Definir Unidade persistência

O Unidade de persistência é uma referência a uma unidade de trabalho com um banco;

O Ela é definida no arquivo (path default)

src/META-INF/persistence.xml

O Neste arquivo é definido qual implementação:

O hibernate, toplink, ...

O E qual base de dados:

O MySql, Oracle,...

Page 18: Introdução ao JPA com Hibernate

persistence.xml

Page 19: Introdução ao JPA com Hibernate

persistence.xml

• Hibernate.Dialect • Definir qual será o dialeto, ou seja, para qual banco será

gerado código

• Hibernate.connection.driver_class • Definir o driver de conexão

Page 20: Introdução ao JPA com Hibernate

persistence.xml • Hibernate.hbm2ddl.auto

• Atualizar automaticamente o esquema no banco de dados.

• Hibernate.show_sql, Hibernate.format_sql, Hibernate.use_sql_comments • Formatar no console/log da aplicação

• Hibernate.connection.url, username e password • Definir a string de conexão com a base de dados

Page 21: Introdução ao JPA com Hibernate

Mapear Classes

O @Entity: define que a entidade será persistente

(opcional)

@Entity(name=“nomeTabela”)

Page 22: Introdução ao JPA com Hibernate

Mapear Atributos

Page 23: Introdução ao JPA com Hibernate

Mapear Relacionamentos

O Podem ser de diversas multiplicidades

O @OneToOne

O @OneToMany

O @ManyToOne

O @ManyToMany

O one-to-many e many-to-many é necessário a utilização de coleções

Page 24: Introdução ao JPA com Hibernate

Mapear Relacionamentos One to One

Page 25: Introdução ao JPA com Hibernate

Mapear Relacionamentos Many to Many

Departamento

Curso

Page 26: Introdução ao JPA com Hibernate

O private EntityManager entityManager = EMUtil.getEntityManager();

O public void acao(Entidade entidade){

try{

EntityTransaction transaction = entityManager.getTransaction();

transaction.begin();

entityManager.persist (entidade);

entityManager.find (Entidade.class, id)

entityManager.remove (entidade);

… transaction.commit();

} catch (Exception ex){

transaction.rollback();

log.error(“Ops… Não deu!”);

}

Page 27: Introdução ao JPA com Hibernate

Considerações

O Muito produtivo para operações básicas de CRUD

O DAO Genérico

O Documentação abrangente

O Padrão amplamente utilizado no mercado

O Dependendo do negócio da aplicação pode atrapalhar mais do que ajudar

Page 28: Introdução ao JPA com Hibernate

Obrigado!

Dúvidas

http://1.bp.blogspot.com/-ExND_ShM0nw/T-vCZFYpNbI/AAAAAAAAAec/h0g0EcCkz9k/s1600/joinha.jpg http://eduardocarvalho.net/wp-content/uploads/2012/07/ponto-de-interroga%C3%A7%C3%A3o.jpg

Page 29: Introdução ao JPA com Hibernate

Referências

O Apostila K19

O k19-k21-persistencia-com-jpa2-e-hibernate

O Apostila Caelum

O FJ-25 - Persistência com JPA e Hibernate

O Persistência de dados com Java Persistence API - Hibernate

O Jefferson S Silva

O www.hibernate.org/