Minicurso jpa e hibernate

1,271
-1

Published on

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

No Downloads
Views
Total Views
1,271
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
65
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Minicurso jpa e hibernate

  1. 1. Minicurso JPA e Hibernate<br />Frederico Maia Arantes<br />
  2. 2. Quem sou eu?<br />Frederico Maia Arantes – @fredmaia<br />Programador Java EE – PC Sistemas<br />Instrutor de cursos Java – Supera Tecnologia<br />Oracle Certified Professional, Java SE 6 Programmer (OCJP)<br />Um dos coordenadores do Gojava<br />Artigo publicado na Easy Java Magazine<br />http://devsexperts.com<br />
  3. 3. Persistência<br />O que é persistência?<br />
  4. 4. Persistência<br />O que é persistência?<br />
  5. 5. Persistência<br />O que é persistência?<br />Aplicações precisam armazenar seus dados em algum lugar. Queremos processar dados e podermos acessá-los posteriormente.<br />
  6. 6. Persistência<br />O que é persistência?<br />Aplicações precisam armazenar seus dados em algum lugar. Queremos processar dados e podermos acessá-los posteriormente.<br />Na maioria dos casos são utilizados banco de dados relacionais.<br />
  7. 7. Persistência<br />O que é persistência?<br />Aplicações precisam armazenar seus dados em algum lugar. Queremos processar dados e podermos acessá-los posteriormente.<br />Na maioria dos casos são utilizados banco de dados relacionais.<br />Em contra partida a maioria das aplicações são desenvolvidas no modelo orientado a objetos.<br />
  8. 8. Persistência<br />
  9. 9. Persistência<br />
  10. 10. Relacional x Orientado a Objetos<br />Dois paradigmas diferentes<br />
  11. 11. Relacional x Orientado a Objetos<br />Dois paradigmas diferentes<br />Como resolver as diferenças?<br />
  12. 12. Relacional x Orientado a Objetos<br />Dois paradigmas diferentes<br />Como resolver as diferenças?<br />Como mapear as tabelas do banco de dados para os objetos em Java?<br />
  13. 13. Relacional x Orientado a Objetos<br />Dois paradigmas diferentes<br />Como resolver as diferenças?<br />Como mapear as tabelas do banco de dados para os objetos em Java?<br />Ou devemos mapear os objetos para tabelas?<br />
  14. 14. Relacional x Orientado a Objetos<br />
  15. 15. JDBC<br />JDBC (Java Database Connectivity) especificação padrão de persistência<br />
  16. 16. JDBC<br />JDBC (Java Database Connectivity) especificação padrão de persistência<br />Que tal juntar os dois mundos?<br />
  17. 17. JDBC<br />JDBC (Java Database Connectivity) especificação padrão de persistência<br />Que tal juntar os dois mundos?<br />Misturar o modelo relacional com o modelo orientado a objetos, misturar o código Java com SQL<br />
  18. 18. JDBC<br />JDBC (Java Database Connectivity) especificação padrão de persistência<br />Que tal juntar os dois mundos?<br />Misturar o modelo relacional com o modelo orientado a objetos, misturar o código Java com SQL<br />Ok, show me the code!<br />
  19. 19. JDBC – Conectando no BD<br />
  20. 20. JDBC – Inserindo uma Pessoa<br />
  21. 21. JDBC – Buscando uma Pessoa<br />
  22. 22. JDBC ??<br />
  23. 23. JDBC<br />Mapeamento nada não muito intuitivo<br />E se eu precisar mudar meu banco de dados?<br />Tenho que aprender SQL e Java?<br />Para cada banco, o SQL pode variar<br />Tenho que aprender o SQL de cada banco?<br />
  24. 24. Tenho mesmo que usar JDBC ??<br />Você precisar ser um herói !!<br />
  25. 25. Tenho mesmo que usar JDBC ??<br />Você precisar ser um herói !!<br />
  26. 26. Hibernate<br />O que é hibernate?<br />
  27. 27. Hibernate<br />
  28. 28. Hibernate<br /> É um estado letárgico pelo qual muitos animais endotérmicos passam durante o inverno, principalmente em regiões temperadas e árticas.<br />
  29. 29. Hibernate<br />NOT!<br /> É um estado letárgico pelo qual muitos animais endotérmicos passam durante o inverno, principalmente em regiões temperadas e árticas.<br />
  30. 30. Hibernate<br />Framework para Mapeamento Objeto Relacional (ORM)<br />Permite que desenvolvamos naturalmente usando o modelo orientados a objetos<br />Persistência transparente<br />Simplifica o desenvolvimento<br />Independente de banco de dados<br />
  31. 31. Hibernate...<br />Mantido pela empresa JBoss<br />Não faz parte da especificação padrão do Java<br />E se a JBoss cancelar o projeto? E se o Hibernate parar de evoluir? <br />(você tem essa preocupação?)<br />Se é tão bom, porque não colocá-lo nas tais especificações Java??<br />
  32. 32. JPA (Java Persistence API)<br />Nova especificação para persistência<br />Já estamos na versão 2.0 da JPA<br />Baseada nos principais frameworks de mercado<br />É uma especificação portanto precisa de frameworks que a implementem como Hibernate, EclipseLink e TopLink<br />Ok, show me thecode!<br />
  33. 33. JPA – Arquivo de Configuração<br />
  34. 34. JPA – Conectando no BD<br />
  35. 35. JPA – Inserindo uma Pessoa<br />
  36. 36. JPA – Buscando uma Pessoa<br />
  37. 37. JPA é complicado né?<br />
  38. 38. JPA é complicado né?<br />Ué, num achei não.<br />
  39. 39. JPA - Mapeamento<br />Mapear o modelo orientado a objetos e o modelo entidade relacionamento.<br />
  40. 40. JPA - Mapeamento<br />Mapear o modelo orientado a objetos e o modelo entidade relacionamento.<br />@Entity: aparece antes do nome das classes que terão objetos persistidos no BD<br />
  41. 41. JPA - Mapeamento<br />Mapear o modelo orientado a objetos e o modelo entidade relacionamento.<br />@Entity: aparece antes do nome das classes que terão objetos persistidos no BD<br />@Id: indica a chave primária<br />
  42. 42. JPA - Mapeamento<br />Mapear o modelo orientado a objetos e o modelo entidade relacionamento.<br />@Entity: aparece antes do nome das classes que terão objetos persistidos no BD<br />@Id: indica a chave primária<br />@GeneratedValue: indica que o valor da chave primária deve ser gerado pelo BD quando um registro é inserido<br />
  43. 43. Classe Java Comum<br />
  44. 44. Classe Java para JPA<br />
  45. 45. JPA<br />Que saco esse monte de teoria...<br />
  46. 46. JPA - Codificando<br />Persistindo (persist)<br />Buscando (find e getReference)<br />Removendo (remove)<br />Atualizando<br />Listando (query, resultList)<br />
  47. 47. JPA - Codificando<br />Transações (begin, commit)<br />Restrições (length, nullable, unique)<br />Data (@Temporal: Date, Time, Timestamp)<br />Atributos não persistentes (@Transiente)<br />
  48. 48. JPA - Codificando<br />EntityManagerFactory é caro<br />JPAUtil retornando conexões (static)<br />Criando um DAO Genérico<br />
  49. 49. Perguntas?<br />
  50. 50. Contato<br />fredericomaia10@gmail.com<br />@SuperaTI / @fredmaia<br />http://www.supera.com.br<br />http://devsexperts.com<br />

×