Your SlideShare is downloading. ×
0
Introdução ao JPA
com Hibernate
Danilo Braga
ICC - Software II
Objetivos
O Conhecer os conceitos básicos
O JPA
O Hibernate
O Visão geral sobre mapeamento
objeto/relacional
http://www.de...
Sumário
O Persistência de dados
O Conceitos básicos e tipos
O Foco na plataforma Java
O Mapeamento Objeto Relacional
O JPA...
Conceitos básicos de
Persistência
O A maioria das aplicações necessitam que
dados sejam persistidos
O Aplicações
O Busca e...
Conceitos básicos de
Persistência
O Tipos de persistência
O Arquivos de textos simples(txt, xml, …)
O Banco de dados OO
O ...
Conceitos básicos de
Persistência
O Escrita demasiada de código
O Repetitivo e de difícil manutenção
O Produtividade forte...
ORM
O ORM – Mapeamento Objeto-Relacional
O Permite a construção de sistemas O.O.
utilizando a persistência dos objetos em
...
ORM
Relacional
O.O.
O.O.
Relacional
Java Persistence API (JPA)
O Especificado pelo Java Community Process
O JSR 317 - 2006
O Baseou-se em diversas soluções ex...
Java Persistence API (JPA)
O Configuração através de @Annotations
O É um padrão JavaEE(a partir do Java 5)
O Implementaçõe...
O Criado para padronizar as ferramentas de
ORM
O Forma de diminuir a complexidade do
desenvolvimento em alguns casos.
O Ge...
Hibernate
O Framework de mapeamento Objeto-Relacional
O Cria uma interface entre a base de dados relacional e
a aplicação ...
Hibernate
O Abstrai o banco de dados utilizado
O suporte para praticamente todos os bancos
de dados comerciais
O Gera códi...
Hibernate - Vantagens
O Produtividade
O Exclui a necessidade de se escrever código
referente a persistência
O Permite cria...
Hibernate - Desvantagens
O Overheads
O Algumas consultas podem ser otimizadas se
escritas em SQL
O Operações que utilizam ...
JPA - Por onde começar
O Definir unidade persistência
O Mapear (anotar) Classes
Definir Unidade persistência
O Unidade de persistência é uma referência
a uma unidade de trabalho com um
banco;
O Ela é de...
persistence.xml
persistence.xml
• Hibernate.Dialect
• Definir qual será o dialeto, ou seja, para qual banco será
gerado código
• Hibernate...
persistence.xml
• Hibernate.hbm2ddl.auto
• Atualizar automaticamente o esquema no banco de
dados.
• Hibernate.show_sql, Hi...
Mapear Classes
O @Entity: define que a entidade será
persistente
(opcional)
@Entity(name=“nomeTabela”)
Mapear Atributos
Mapear Relacionamentos
O Podem ser de diversas multiplicidades
O @OneToOne
O @OneToMany
O @ManyToOne
O @ManyToMany
O one-t...
Mapear Relacionamentos
One to One
Mapear Relacionamentos
Many to Many
Departamento
Curso
O private EntityManager entityManager = EMUtil.getEntityManager();
O public void acao(Entidade entidade){
try{
EntityTrans...
Considerações
O Muito produtivo para operações básicas
de CRUD
O DAO Genérico
O Documentação abrangente
O Padrão amplament...
Obrigado!
Dúvidas
http://1.bp.blogspot.com/-ExND_ShM0nw/T-vCZFYpNbI/AAAAAAAAAec/h0g0EcCkz9k/s1600/joinha.jpg
http://eduard...
Referências
O Apostila K19
O k19-k21-persistencia-com-jpa2-e-hibernate
O Apostila Caelum
O FJ-25 - Persistência com JPA e ...
Upcoming SlideShare
Loading in...5
×

Introdução ao JPA com Hibernate

2,261

Published on

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.

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,261
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
102
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Transcript of "Introdução ao JPA com Hibernate"

  1. 1. Introdução ao JPA com Hibernate Danilo Braga ICC - Software II
  2. 2. 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
  3. 3. 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
  4. 4. 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 …
  5. 5. 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
  6. 6. 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
  7. 7. 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
  8. 8. ORM Relacional O.O. O.O. Relacional
  9. 9. 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
  10. 10. 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...
  11. 11. 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
  12. 12. 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
  13. 13. 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
  14. 14. 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
  15. 15. 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
  16. 16. JPA - Por onde começar O Definir unidade persistência O Mapear (anotar) Classes
  17. 17. 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,...
  18. 18. persistence.xml
  19. 19. 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
  20. 20. 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
  21. 21. Mapear Classes O @Entity: define que a entidade será persistente (opcional) @Entity(name=“nomeTabela”)
  22. 22. Mapear Atributos
  23. 23. 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
  24. 24. Mapear Relacionamentos One to One
  25. 25. Mapear Relacionamentos Many to Many Departamento Curso
  26. 26. 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!”); }
  27. 27. 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
  28. 28. 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
  29. 29. 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/
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×