O documento apresenta um minicurso sobre JPA e Hibernate. Resume os principais tópicos abordados: 1) Introdução ao conceito de persistência de dados e as diferenças entre modelo relacional e orientado a objetos; 2) Apresenta JDBC como a especificação padrão de Java para persistência e suas limitações; 3) Explica o que é Hibernate e JPA, frameworks que mapeiam objetos para bancos de dados de forma transparente.
2. Quem sou eu? Frederico Maia Arantes – @fredmaia Programador Java EE – PC Sistemas Instrutor de cursos Java – Supera Tecnologia Oracle Certified Professional, Java SE 6 Programmer (OCJP) Um dos coordenadores do Gojava Artigo publicado na Easy Java Magazine http://devsexperts.com
5. Persistência O que é persistência? Aplicações precisam armazenar seus dados em algum lugar. Queremos processar dados e podermos acessá-los posteriormente.
6. Persistência O que é persistência? Aplicações precisam armazenar seus dados em algum lugar. Queremos processar dados e podermos acessá-los posteriormente. Na maioria dos casos são utilizados banco de dados relacionais.
7. Persistência O que é persistência? Aplicações precisam armazenar seus dados em algum lugar. Queremos processar dados e podermos acessá-los posteriormente. Na maioria dos casos são utilizados banco de dados relacionais. Em contra partida a maioria das aplicações são desenvolvidas no modelo orientado a objetos.
11. Relacional x Orientado a Objetos Dois paradigmas diferentes Como resolver as diferenças?
12. Relacional x Orientado a Objetos Dois paradigmas diferentes Como resolver as diferenças? Como mapear as tabelas do banco de dados para os objetos em Java?
13. Relacional x Orientado a Objetos Dois paradigmas diferentes Como resolver as diferenças? Como mapear as tabelas do banco de dados para os objetos em Java? Ou devemos mapear os objetos para tabelas?
15. JDBC JDBC (Java Database Connectivity) especificação padrão de persistência
16. JDBC JDBC (Java Database Connectivity) especificação padrão de persistência Que tal juntar os dois mundos?
17. JDBC JDBC (Java Database Connectivity) especificação padrão de persistência Que tal juntar os dois mundos? Misturar o modelo relacional com o modelo orientado a objetos, misturar o código Java com SQL
18. JDBC JDBC (Java Database Connectivity) especificação padrão de persistência Que tal juntar os dois mundos? Misturar o modelo relacional com o modelo orientado a objetos, misturar o código Java com SQL Ok, show me the code!
23. JDBC Mapeamento nada não muito intuitivo E se eu precisar mudar meu banco de dados? Tenho que aprender SQL e Java? Para cada banco, o SQL pode variar Tenho que aprender o SQL de cada banco?
28. Hibernate É um estado letárgico pelo qual muitos animais endotérmicos passam durante o inverno, principalmente em regiões temperadas e árticas.
29. Hibernate NOT! É um estado letárgico pelo qual muitos animais endotérmicos passam durante o inverno, principalmente em regiões temperadas e árticas.
30. Hibernate Framework para Mapeamento Objeto Relacional (ORM) Permite que desenvolvamos naturalmente usando o modelo orientados a objetos Persistência transparente Simplifica o desenvolvimento Independente de banco de dados
31. Hibernate... Mantido pela empresa JBoss Não faz parte da especificação padrão do Java E se a JBoss cancelar o projeto? E se o Hibernate parar de evoluir? (você tem essa preocupação?) Se é tão bom, porque não colocá-lo nas tais especificações Java??
32. JPA (Java Persistence API) Nova especificação para persistência Já estamos na versão 2.0 da JPA Baseada nos principais frameworks de mercado É uma especificação portanto precisa de frameworks que a implementem como Hibernate, EclipseLink e TopLink Ok, show me thecode!
39. JPA - Mapeamento Mapear o modelo orientado a objetos e o modelo entidade relacionamento.
40. JPA - Mapeamento Mapear o modelo orientado a objetos e o modelo entidade relacionamento. @Entity: aparece antes do nome das classes que terão objetos persistidos no BD
41. JPA - Mapeamento Mapear o modelo orientado a objetos e o modelo entidade relacionamento. @Entity: aparece antes do nome das classes que terão objetos persistidos no BD @Id: indica a chave primária
42. JPA - Mapeamento Mapear o modelo orientado a objetos e o modelo entidade relacionamento. @Entity: aparece antes do nome das classes que terão objetos persistidos no BD @Id: indica a chave primária @GeneratedValue: indica que o valor da chave primária deve ser gerado pelo BD quando um registro é inserido