Download - Minicurso jpa e hibernate
![Page 1: Minicurso jpa e hibernate](https://reader033.vdocuments.pub/reader033/viewer/2022061521/55731fcfd8b42aae7b8b4c22/html5/thumbnails/1.jpg)
Minicurso JPA e Hibernate
Frederico Maia Arantes
![Page 2: Minicurso jpa e hibernate](https://reader033.vdocuments.pub/reader033/viewer/2022061521/55731fcfd8b42aae7b8b4c22/html5/thumbnails/2.jpg)
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
![Page 3: Minicurso jpa e hibernate](https://reader033.vdocuments.pub/reader033/viewer/2022061521/55731fcfd8b42aae7b8b4c22/html5/thumbnails/3.jpg)
Persistência
O que é persistência?
![Page 4: Minicurso jpa e hibernate](https://reader033.vdocuments.pub/reader033/viewer/2022061521/55731fcfd8b42aae7b8b4c22/html5/thumbnails/4.jpg)
Persistência
O que é persistência?
![Page 5: Minicurso jpa e hibernate](https://reader033.vdocuments.pub/reader033/viewer/2022061521/55731fcfd8b42aae7b8b4c22/html5/thumbnails/5.jpg)
Persistência
O que é persistência? Aplicações precisam armazenar seus
dados em algum lugar. Queremos processar dados e podermos acessá-los posteriormente.
![Page 6: Minicurso jpa e hibernate](https://reader033.vdocuments.pub/reader033/viewer/2022061521/55731fcfd8b42aae7b8b4c22/html5/thumbnails/6.jpg)
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.
![Page 7: Minicurso jpa e hibernate](https://reader033.vdocuments.pub/reader033/viewer/2022061521/55731fcfd8b42aae7b8b4c22/html5/thumbnails/7.jpg)
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.
![Page 8: Minicurso jpa e hibernate](https://reader033.vdocuments.pub/reader033/viewer/2022061521/55731fcfd8b42aae7b8b4c22/html5/thumbnails/8.jpg)
Persistência
![Page 9: Minicurso jpa e hibernate](https://reader033.vdocuments.pub/reader033/viewer/2022061521/55731fcfd8b42aae7b8b4c22/html5/thumbnails/9.jpg)
Persistência
![Page 10: Minicurso jpa e hibernate](https://reader033.vdocuments.pub/reader033/viewer/2022061521/55731fcfd8b42aae7b8b4c22/html5/thumbnails/10.jpg)
Relacional x Orientado a Objetos
Dois paradigmas diferentes
![Page 11: Minicurso jpa e hibernate](https://reader033.vdocuments.pub/reader033/viewer/2022061521/55731fcfd8b42aae7b8b4c22/html5/thumbnails/11.jpg)
Relacional x Orientado a Objetos
Dois paradigmas diferentes
Como resolver as diferenças?
![Page 12: Minicurso jpa e hibernate](https://reader033.vdocuments.pub/reader033/viewer/2022061521/55731fcfd8b42aae7b8b4c22/html5/thumbnails/12.jpg)
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?
![Page 13: Minicurso jpa e hibernate](https://reader033.vdocuments.pub/reader033/viewer/2022061521/55731fcfd8b42aae7b8b4c22/html5/thumbnails/13.jpg)
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?
![Page 14: Minicurso jpa e hibernate](https://reader033.vdocuments.pub/reader033/viewer/2022061521/55731fcfd8b42aae7b8b4c22/html5/thumbnails/14.jpg)
Relacional x Orientado a Objetos
![Page 15: Minicurso jpa e hibernate](https://reader033.vdocuments.pub/reader033/viewer/2022061521/55731fcfd8b42aae7b8b4c22/html5/thumbnails/15.jpg)
JDBC
JDBC (Java Database Connectivity) especificação padrão de persistência
![Page 16: Minicurso jpa e hibernate](https://reader033.vdocuments.pub/reader033/viewer/2022061521/55731fcfd8b42aae7b8b4c22/html5/thumbnails/16.jpg)
JDBC
JDBC (Java Database Connectivity) especificação padrão de persistência
Que tal juntar os dois mundos?
![Page 17: Minicurso jpa e hibernate](https://reader033.vdocuments.pub/reader033/viewer/2022061521/55731fcfd8b42aae7b8b4c22/html5/thumbnails/17.jpg)
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
![Page 18: Minicurso jpa e hibernate](https://reader033.vdocuments.pub/reader033/viewer/2022061521/55731fcfd8b42aae7b8b4c22/html5/thumbnails/18.jpg)
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!
![Page 19: Minicurso jpa e hibernate](https://reader033.vdocuments.pub/reader033/viewer/2022061521/55731fcfd8b42aae7b8b4c22/html5/thumbnails/19.jpg)
JDBC – Conectando no BD
![Page 20: Minicurso jpa e hibernate](https://reader033.vdocuments.pub/reader033/viewer/2022061521/55731fcfd8b42aae7b8b4c22/html5/thumbnails/20.jpg)
JDBC – Inserindo uma Pessoa
![Page 21: Minicurso jpa e hibernate](https://reader033.vdocuments.pub/reader033/viewer/2022061521/55731fcfd8b42aae7b8b4c22/html5/thumbnails/21.jpg)
JDBC – Buscando uma Pessoa
![Page 22: Minicurso jpa e hibernate](https://reader033.vdocuments.pub/reader033/viewer/2022061521/55731fcfd8b42aae7b8b4c22/html5/thumbnails/22.jpg)
JDBC ??
![Page 23: Minicurso jpa e hibernate](https://reader033.vdocuments.pub/reader033/viewer/2022061521/55731fcfd8b42aae7b8b4c22/html5/thumbnails/23.jpg)
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?
![Page 24: Minicurso jpa e hibernate](https://reader033.vdocuments.pub/reader033/viewer/2022061521/55731fcfd8b42aae7b8b4c22/html5/thumbnails/24.jpg)
Tenho mesmo que usar JDBC ??
Você precisar ser um herói !!
![Page 25: Minicurso jpa e hibernate](https://reader033.vdocuments.pub/reader033/viewer/2022061521/55731fcfd8b42aae7b8b4c22/html5/thumbnails/25.jpg)
Tenho mesmo que usar JDBC ??
Você precisar ser um herói !!
![Page 26: Minicurso jpa e hibernate](https://reader033.vdocuments.pub/reader033/viewer/2022061521/55731fcfd8b42aae7b8b4c22/html5/thumbnails/26.jpg)
Hibernate
O que é hibernate?
![Page 27: Minicurso jpa e hibernate](https://reader033.vdocuments.pub/reader033/viewer/2022061521/55731fcfd8b42aae7b8b4c22/html5/thumbnails/27.jpg)
Hibernate
![Page 28: Minicurso jpa e hibernate](https://reader033.vdocuments.pub/reader033/viewer/2022061521/55731fcfd8b42aae7b8b4c22/html5/thumbnails/28.jpg)
Hibernate
É um estado letárgico pelo qual muitos animais endotérmicos passam durante o inverno, principalmente em regiões temperadas e árticas.
![Page 29: Minicurso jpa e hibernate](https://reader033.vdocuments.pub/reader033/viewer/2022061521/55731fcfd8b42aae7b8b4c22/html5/thumbnails/29.jpg)
Hibernate
É um estado letárgico pelo qual muitos animais endotérmicos passam durante o inverno, principalmente em regiões temperadas e árticas.
NOT!
![Page 30: Minicurso jpa e hibernate](https://reader033.vdocuments.pub/reader033/viewer/2022061521/55731fcfd8b42aae7b8b4c22/html5/thumbnails/30.jpg)
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
![Page 31: Minicurso jpa e hibernate](https://reader033.vdocuments.pub/reader033/viewer/2022061521/55731fcfd8b42aae7b8b4c22/html5/thumbnails/31.jpg)
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??
![Page 32: Minicurso jpa e hibernate](https://reader033.vdocuments.pub/reader033/viewer/2022061521/55731fcfd8b42aae7b8b4c22/html5/thumbnails/32.jpg)
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 the code!
![Page 33: Minicurso jpa e hibernate](https://reader033.vdocuments.pub/reader033/viewer/2022061521/55731fcfd8b42aae7b8b4c22/html5/thumbnails/33.jpg)
JPA – Arquivo de Configuração
![Page 34: Minicurso jpa e hibernate](https://reader033.vdocuments.pub/reader033/viewer/2022061521/55731fcfd8b42aae7b8b4c22/html5/thumbnails/34.jpg)
JPA – Conectando no BD
![Page 35: Minicurso jpa e hibernate](https://reader033.vdocuments.pub/reader033/viewer/2022061521/55731fcfd8b42aae7b8b4c22/html5/thumbnails/35.jpg)
JPA – Inserindo uma Pessoa
![Page 36: Minicurso jpa e hibernate](https://reader033.vdocuments.pub/reader033/viewer/2022061521/55731fcfd8b42aae7b8b4c22/html5/thumbnails/36.jpg)
JPA – Buscando uma Pessoa
![Page 37: Minicurso jpa e hibernate](https://reader033.vdocuments.pub/reader033/viewer/2022061521/55731fcfd8b42aae7b8b4c22/html5/thumbnails/37.jpg)
JPA é complicado né?
![Page 38: Minicurso jpa e hibernate](https://reader033.vdocuments.pub/reader033/viewer/2022061521/55731fcfd8b42aae7b8b4c22/html5/thumbnails/38.jpg)
JPA é complicado né?
Ué, num achei não.
![Page 39: Minicurso jpa e hibernate](https://reader033.vdocuments.pub/reader033/viewer/2022061521/55731fcfd8b42aae7b8b4c22/html5/thumbnails/39.jpg)
JPA - Mapeamento
Mapear o modelo orientado a objetos e o modelo entidade relacionamento.
![Page 40: Minicurso jpa e hibernate](https://reader033.vdocuments.pub/reader033/viewer/2022061521/55731fcfd8b42aae7b8b4c22/html5/thumbnails/40.jpg)
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
![Page 41: Minicurso jpa e hibernate](https://reader033.vdocuments.pub/reader033/viewer/2022061521/55731fcfd8b42aae7b8b4c22/html5/thumbnails/41.jpg)
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
![Page 42: Minicurso jpa e hibernate](https://reader033.vdocuments.pub/reader033/viewer/2022061521/55731fcfd8b42aae7b8b4c22/html5/thumbnails/42.jpg)
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
![Page 43: Minicurso jpa e hibernate](https://reader033.vdocuments.pub/reader033/viewer/2022061521/55731fcfd8b42aae7b8b4c22/html5/thumbnails/43.jpg)
Classe Java Comum
![Page 44: Minicurso jpa e hibernate](https://reader033.vdocuments.pub/reader033/viewer/2022061521/55731fcfd8b42aae7b8b4c22/html5/thumbnails/44.jpg)
Classe Java para JPA
![Page 45: Minicurso jpa e hibernate](https://reader033.vdocuments.pub/reader033/viewer/2022061521/55731fcfd8b42aae7b8b4c22/html5/thumbnails/45.jpg)
JPA
Que saco esse monte de teoria...
![Page 46: Minicurso jpa e hibernate](https://reader033.vdocuments.pub/reader033/viewer/2022061521/55731fcfd8b42aae7b8b4c22/html5/thumbnails/46.jpg)
JPA - Codificando
Persistindo (persist)
Buscando (find e getReference)
Removendo (remove)
Atualizando
Listando (query, resultList)
![Page 47: Minicurso jpa e hibernate](https://reader033.vdocuments.pub/reader033/viewer/2022061521/55731fcfd8b42aae7b8b4c22/html5/thumbnails/47.jpg)
JPA - Codificando
Transações (begin, commit)
Restrições (length, nullable, unique)
Data (@Temporal: Date, Time, Timestamp)
Atributos não persistentes (@Transiente)
![Page 48: Minicurso jpa e hibernate](https://reader033.vdocuments.pub/reader033/viewer/2022061521/55731fcfd8b42aae7b8b4c22/html5/thumbnails/48.jpg)
JPA - Codificando
EntityManagerFactory é caro
JPAUtil retornando conexões (static)
Criando um DAO Genérico
![Page 49: Minicurso jpa e hibernate](https://reader033.vdocuments.pub/reader033/viewer/2022061521/55731fcfd8b42aae7b8b4c22/html5/thumbnails/49.jpg)
Perguntas?