Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
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

791 views

Published on

Published in: Technology
  • Be the first to comment

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/

×