Migrando de JDBC para JPA
-
Upload
wilma-hansen -
Category
Documents
-
view
67 -
download
3
description
Transcript of Migrando de JDBC para JPA
![Page 1: Migrando de JDBC para JPA](https://reader036.fdocumentos.com/reader036/viewer/2022081508/5681334b550346895d9a4f70/html5/thumbnails/1.jpg)
MIGRANDO DE JDBC PARA JPAHébert Coelho de Oliveira
![Page 2: Migrando de JDBC para JPA](https://reader036.fdocumentos.com/reader036/viewer/2022081508/5681334b550346895d9a4f70/html5/thumbnails/2.jpg)
SOBRE MIM
10 anos como desenvolvedor 3+ anos com Java Pós graduação: MIT Engenharia de Software
com Java Certificações: SCJP, SCWCD, OCBCD (em
breve) Criador do blog http://uaihebert.com Professor de Java básico/Web E o mais importante, torcedor do Real Madrid
![Page 3: Migrando de JDBC para JPA](https://reader036.fdocumentos.com/reader036/viewer/2022081508/5681334b550346895d9a4f70/html5/thumbnails/3.jpg)
O QUE É JDBC?
JDBC não é – Joça Do Barcelona, caiu! JDBC é - Java Database Connectivity Considerada API de baixo nível. Serve de ponte
Aplicação JDBC Banco de dados
![Page 4: Migrando de JDBC para JPA](https://reader036.fdocumentos.com/reader036/viewer/2022081508/5681334b550346895d9a4f70/html5/thumbnails/4.jpg)
FACILIDADES DO JDBC
Drivers ResultStatement Migrar de Banco de dados* Fácil configuração: URL, Rede, Instalação
![Page 5: Migrando de JDBC para JPA](https://reader036.fdocumentos.com/reader036/viewer/2022081508/5681334b550346895d9a4f70/html5/thumbnails/5.jpg)
INSERINDO NO BANCO
E como ficaria 1x1?
![Page 6: Migrando de JDBC para JPA](https://reader036.fdocumentos.com/reader036/viewer/2022081508/5681334b550346895d9a4f70/html5/thumbnails/6.jpg)
INSERINDO EM RELACIONAMENTO 1X1
E como ficaria 1xN?
![Page 7: Migrando de JDBC para JPA](https://reader036.fdocumentos.com/reader036/viewer/2022081508/5681334b550346895d9a4f70/html5/thumbnails/7.jpg)
INSERINDO EM RELACIONAMENTO 1XN
E se fosse N x N?
![Page 8: Migrando de JDBC para JPA](https://reader036.fdocumentos.com/reader036/viewer/2022081508/5681334b550346895d9a4f70/html5/thumbnails/8.jpg)
INSERINDO EM RELACIONAMENTO N X N
Alguém imagina qual seria o comportamento do script acima caso o sexto insert desse algum erro?
E como ficaria o ID na vida real? E como ficaria um insert em uma tabela
passando campos dinâmicos?
![Page 9: Migrando de JDBC para JPA](https://reader036.fdocumentos.com/reader036/viewer/2022081508/5681334b550346895d9a4f70/html5/thumbnails/9.jpg)
CAMPOS DINÂMICOS
Bastante suscetível a erros, não?
![Page 10: Migrando de JDBC para JPA](https://reader036.fdocumentos.com/reader036/viewer/2022081508/5681334b550346895d9a4f70/html5/thumbnails/10.jpg)
ONDE ESTÁ O ERRO?
![Page 11: Migrando de JDBC para JPA](https://reader036.fdocumentos.com/reader036/viewer/2022081508/5681334b550346895d9a4f70/html5/thumbnails/11.jpg)
ONDE ESTÁ O ERRO?
![Page 12: Migrando de JDBC para JPA](https://reader036.fdocumentos.com/reader036/viewer/2022081508/5681334b550346895d9a4f70/html5/thumbnails/12.jpg)
ONDE ESTÁ O ERRO?
![Page 13: Migrando de JDBC para JPA](https://reader036.fdocumentos.com/reader036/viewer/2022081508/5681334b550346895d9a4f70/html5/thumbnails/13.jpg)
ONDE ESTÁ O ERRO?
![Page 14: Migrando de JDBC para JPA](https://reader036.fdocumentos.com/reader036/viewer/2022081508/5681334b550346895d9a4f70/html5/thumbnails/14.jpg)
COMO SERIA UMA CONSULTA
Imagine se essa classe tivesse os 30 atributos retornados nessa consulta?
![Page 15: Migrando de JDBC para JPA](https://reader036.fdocumentos.com/reader036/viewer/2022081508/5681334b550346895d9a4f70/html5/thumbnails/15.jpg)
VOCÊ PODERIA TER A SEGUINTE REAÇÃO....
![Page 16: Migrando de JDBC para JPA](https://reader036.fdocumentos.com/reader036/viewer/2022081508/5681334b550346895d9a4f70/html5/thumbnails/16.jpg)
OU ENTÃO...
![Page 17: Migrando de JDBC para JPA](https://reader036.fdocumentos.com/reader036/viewer/2022081508/5681334b550346895d9a4f70/html5/thumbnails/17.jpg)
E QUEM TE PASSOU A “TAREFA CHATA”...
![Page 18: Migrando de JDBC para JPA](https://reader036.fdocumentos.com/reader036/viewer/2022081508/5681334b550346895d9a4f70/html5/thumbnails/18.jpg)
ONDE CHEGAMOS?
SQL complexo é difícil dar manutenção Muito código em SQL para uma ação simples Não é muito viável ter diversos bancos de
dados na mesma aplicação Caso algum atributo de uma classe mude,
todos os “scripts” terão que mudar Por que com JPA os “scripts” não mudariam? Por que com JPA eu não teria problemas de
migração de banco?
![Page 19: Migrando de JDBC para JPA](https://reader036.fdocumentos.com/reader036/viewer/2022081508/5681334b550346895d9a4f70/html5/thumbnails/19.jpg)
FINALMENTE VAMOS FALAR DO JPA \O/
O que é o JPA? O que é Hibernate, EclipseLink, OpenJPA?
Como o JPA trabalha? Como ele é portável? O que é JPQL? Como ele trata os relacionamentos? É possível migrar aos poucos? Como funciona a transação com o banco de
dados? Como ele funciona com web e desktop? E como última pergunta.... Como o Real Madrid consegue ser tão
bom???
![Page 20: Migrando de JDBC para JPA](https://reader036.fdocumentos.com/reader036/viewer/2022081508/5681334b550346895d9a4f70/html5/thumbnails/20.jpg)
CONFIGURAÇÃO
Arquivo /META-INF/persistence.xml
![Page 21: Migrando de JDBC para JPA](https://reader036.fdocumentos.com/reader036/viewer/2022081508/5681334b550346895d9a4f70/html5/thumbnails/21.jpg)
BIBLIOTECAS
Bibliotecas da Implementação
![Page 22: Migrando de JDBC para JPA](https://reader036.fdocumentos.com/reader036/viewer/2022081508/5681334b550346895d9a4f70/html5/thumbnails/22.jpg)
ENTITY
O que é uma Entity? O que uma classe precisa para ser uma Entity?
![Page 23: Migrando de JDBC para JPA](https://reader036.fdocumentos.com/reader036/viewer/2022081508/5681334b550346895d9a4f70/html5/thumbnails/23.jpg)
ENTITY
![Page 24: Migrando de JDBC para JPA](https://reader036.fdocumentos.com/reader036/viewer/2022081508/5681334b550346895d9a4f70/html5/thumbnails/24.jpg)
INSERINDO NO BANCO
E como ficaria 1x1?
![Page 25: Migrando de JDBC para JPA](https://reader036.fdocumentos.com/reader036/viewer/2022081508/5681334b550346895d9a4f70/html5/thumbnails/25.jpg)
RELACIONAMENTO 1X1 (ONE TO ONE)
Uni direcional:
Bi direcional
![Page 26: Migrando de JDBC para JPA](https://reader036.fdocumentos.com/reader036/viewer/2022081508/5681334b550346895d9a4f70/html5/thumbnails/26.jpg)
INSERINDO EM RELACIONAMENTO 1X1
E como ficaria 1xN?
![Page 27: Migrando de JDBC para JPA](https://reader036.fdocumentos.com/reader036/viewer/2022081508/5681334b550346895d9a4f70/html5/thumbnails/27.jpg)
RELACIONAMENTO 1XN (ONE TO MANY)
Uni direcional:
Bi direcional
![Page 28: Migrando de JDBC para JPA](https://reader036.fdocumentos.com/reader036/viewer/2022081508/5681334b550346895d9a4f70/html5/thumbnails/28.jpg)
INSERINDO EM RELACIONAMENTO 1XN
E se fosse N x N?
![Page 29: Migrando de JDBC para JPA](https://reader036.fdocumentos.com/reader036/viewer/2022081508/5681334b550346895d9a4f70/html5/thumbnails/29.jpg)
RELACIONAMENTO N X N (MANY TO MANY)
Uni direcional:
Bi direcional
![Page 30: Migrando de JDBC para JPA](https://reader036.fdocumentos.com/reader036/viewer/2022081508/5681334b550346895d9a4f70/html5/thumbnails/30.jpg)
INSERINDO EM RELACIONAMENTO N X N
![Page 31: Migrando de JDBC para JPA](https://reader036.fdocumentos.com/reader036/viewer/2022081508/5681334b550346895d9a4f70/html5/thumbnails/31.jpg)
COMO SERIA UMA CONSULTA
Imagine se essa classe tivesse os 30 atributos retornados nessa consulta?
![Page 32: Migrando de JDBC para JPA](https://reader036.fdocumentos.com/reader036/viewer/2022081508/5681334b550346895d9a4f70/html5/thumbnails/32.jpg)
VOCÊ PODERIA TER A SEGUINTE REAÇÃO....
![Page 33: Migrando de JDBC para JPA](https://reader036.fdocumentos.com/reader036/viewer/2022081508/5681334b550346895d9a4f70/html5/thumbnails/33.jpg)
OU ENTÃO...
![Page 34: Migrando de JDBC para JPA](https://reader036.fdocumentos.com/reader036/viewer/2022081508/5681334b550346895d9a4f70/html5/thumbnails/34.jpg)
E QUEM TE PASSOU A “TAREFA CHATA”...
![Page 35: Migrando de JDBC para JPA](https://reader036.fdocumentos.com/reader036/viewer/2022081508/5681334b550346895d9a4f70/html5/thumbnails/35.jpg)
FINALIZANDO
Facilidade de migrar o banco Redução do trabalho manual para persistir
dados Maior agilidade no desenvolvimento Desacopla mais a aplicação E por último... Dá mais tempo para o desenvolvedor realizar
testes, deixa o código limpo. E lógico, dá mais tempo para ver jogos do
Real Madrid!
![Page 36: Migrando de JDBC para JPA](https://reader036.fdocumentos.com/reader036/viewer/2022081508/5681334b550346895d9a4f70/html5/thumbnails/36.jpg)
DÚVIDAS?
Agradeço a todos pela oportunidade. [=
http://uaihebert.com