m igrando de jdbc para jpa hébert coelho de oliveira

36
MIGRANDO DE JDBC PARA JPA Hébert Coelho de Oliveira

Upload: internet

Post on 17-Apr-2015

114 views

Category:

Documents


6 download

TRANSCRIPT

Page 1: M IGRANDO DE JDBC PARA JPA Hébert Coelho de Oliveira

MIGRANDO DE JDBC PARA JPAHébert Coelho de Oliveira

Page 2: M IGRANDO DE JDBC PARA JPA Hébert Coelho de Oliveira

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: M IGRANDO DE JDBC PARA JPA Hébert Coelho de Oliveira

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: M IGRANDO DE JDBC PARA JPA Hébert Coelho de Oliveira

FACILIDADES DO JDBC

Drivers ResultStatement Migrar de Banco de dados* Fácil configuração: URL, Rede, Instalação

Page 5: M IGRANDO DE JDBC PARA JPA Hébert Coelho de Oliveira

INSERINDO NO BANCO

E como ficaria 1x1?

Page 6: M IGRANDO DE JDBC PARA JPA Hébert Coelho de Oliveira

INSERINDO EM RELACIONAMENTO 1X1

E como ficaria 1xN?

Page 7: M IGRANDO DE JDBC PARA JPA Hébert Coelho de Oliveira

INSERINDO EM RELACIONAMENTO 1XN

E se fosse N x N?

Page 8: M IGRANDO DE JDBC PARA JPA Hébert Coelho de Oliveira

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: M IGRANDO DE JDBC PARA JPA Hébert Coelho de Oliveira

CAMPOS DINÂMICOS

Bastante suscetível a erros, não?

Page 10: M IGRANDO DE JDBC PARA JPA Hébert Coelho de Oliveira

ONDE ESTÁ O ERRO?

Page 11: M IGRANDO DE JDBC PARA JPA Hébert Coelho de Oliveira

ONDE ESTÁ O ERRO?

Page 12: M IGRANDO DE JDBC PARA JPA Hébert Coelho de Oliveira

ONDE ESTÁ O ERRO?

Page 13: M IGRANDO DE JDBC PARA JPA Hébert Coelho de Oliveira

ONDE ESTÁ O ERRO?

Page 14: M IGRANDO DE JDBC PARA JPA Hébert Coelho de Oliveira

COMO SERIA UMA CONSULTA

Imagine se essa classe tivesse os 30 atributos retornados nessa consulta?

Page 15: M IGRANDO DE JDBC PARA JPA Hébert Coelho de Oliveira

VOCÊ PODERIA TER A SEGUINTE REAÇÃO....

Page 16: M IGRANDO DE JDBC PARA JPA Hébert Coelho de Oliveira

OU ENTÃO...

Page 17: M IGRANDO DE JDBC PARA JPA Hébert Coelho de Oliveira

E QUEM TE PASSOU A “TAREFA CHATA”...

Page 18: M IGRANDO DE JDBC PARA JPA Hébert Coelho de Oliveira

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: M IGRANDO DE JDBC PARA JPA Hébert Coelho de Oliveira

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: M IGRANDO DE JDBC PARA JPA Hébert Coelho de Oliveira

CONFIGURAÇÃO

Arquivo /META-INF/persistence.xml

Page 21: M IGRANDO DE JDBC PARA JPA Hébert Coelho de Oliveira

BIBLIOTECAS

Bibliotecas da Implementação

Page 22: M IGRANDO DE JDBC PARA JPA Hébert Coelho de Oliveira

ENTITY

O que é uma Entity? O que uma classe precisa para ser uma Entity?

Page 23: M IGRANDO DE JDBC PARA JPA Hébert Coelho de Oliveira

ENTITY

Page 24: M IGRANDO DE JDBC PARA JPA Hébert Coelho de Oliveira

INSERINDO NO BANCO

E como ficaria 1x1?

Page 25: M IGRANDO DE JDBC PARA JPA Hébert Coelho de Oliveira

RELACIONAMENTO 1X1 (ONE TO ONE)

Uni direcional:

Bi direcional

Page 26: M IGRANDO DE JDBC PARA JPA Hébert Coelho de Oliveira

INSERINDO EM RELACIONAMENTO 1X1

E como ficaria 1xN?

Page 27: M IGRANDO DE JDBC PARA JPA Hébert Coelho de Oliveira

RELACIONAMENTO 1XN (ONE TO MANY)

Uni direcional:

Bi direcional

Page 28: M IGRANDO DE JDBC PARA JPA Hébert Coelho de Oliveira

INSERINDO EM RELACIONAMENTO 1XN

E se fosse N x N?

Page 29: M IGRANDO DE JDBC PARA JPA Hébert Coelho de Oliveira

RELACIONAMENTO N X N (MANY TO MANY)

Uni direcional:

Bi direcional

Page 30: M IGRANDO DE JDBC PARA JPA Hébert Coelho de Oliveira

INSERINDO EM RELACIONAMENTO N X N

Page 31: M IGRANDO DE JDBC PARA JPA Hébert Coelho de Oliveira

COMO SERIA UMA CONSULTA

Imagine se essa classe tivesse os 30 atributos retornados nessa consulta?

Page 32: M IGRANDO DE JDBC PARA JPA Hébert Coelho de Oliveira

VOCÊ PODERIA TER A SEGUINTE REAÇÃO....

Page 33: M IGRANDO DE JDBC PARA JPA Hébert Coelho de Oliveira

OU ENTÃO...

Page 34: M IGRANDO DE JDBC PARA JPA Hébert Coelho de Oliveira

E QUEM TE PASSOU A “TAREFA CHATA”...

Page 35: M IGRANDO DE JDBC PARA JPA Hébert Coelho de Oliveira

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: M IGRANDO DE JDBC PARA JPA Hébert Coelho de Oliveira

DÚVIDAS?

Agradeço a todos pela oportunidade. [=

http://uaihebert.com

[email protected]