MIGRANDO 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

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
FACILIDADES DO JDBC
Drivers
 ResultStatement
 Migrar de Banco de dados*
 Fácil configuração: URL, Rede, Instalação

INSERINDO NO BANCO

E como ficaria 1x1?
INSERINDO EM RELACIONAMENTO 1X1

E como ficaria 1xN?
INSERINDO EM RELACIONAMENTO 1XN

E se fosse N x N?
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?

CAMPOS DINÂMICOS

Bastante suscetível a erros, não?
ONDE ESTÁ O ERRO?
ONDE ESTÁ O ERRO?
ONDE ESTÁ O ERRO?
ONDE ESTÁ O ERRO?
COMO SERIA UMA CONSULTA

Imagine se essa classe tivesse os 30 atributos
retornados nessa consulta?
VOCÊ PODERIA TER A SEGUINTE REAÇÃO....
OU ENTÃO...
E QUEM TE PASSOU A “TAREFA CHATA”...
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?

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???

CONFIGURAÇÃO

Arquivo /META-INF/persistence.xml
BIBLIOTECAS

Bibliotecas da Implementação
ENTITY

O que é uma Entity? O que uma classe precisa
para ser uma Entity?
ENTITY
INSERINDO NO BANCO

E como ficaria 1x1?
RELACIONAMENTO 1X1 (ONE TO ONE)

Uni direcional:

Bi direcional
INSERINDO EM RELACIONAMENTO 1X1

E como ficaria 1xN?
RELACIONAMENTO 1XN (ONE TO MANY)

Uni direcional:

Bi direcional
INSERINDO EM RELACIONAMENTO 1XN

E se fosse N x N?
RELACIONAMENTO N X N (MANY TO
MANY)

Uni direcional:

Bi direcional
INSERINDO EM RELACIONAMENTO N X N
COMO SERIA UMA CONSULTA

Imagine se essa classe tivesse os 30 atributos
retornados nessa consulta?
VOCÊ PODERIA TER A SEGUINTE REAÇÃO....
OU ENTÃO...
E QUEM TE PASSOU A “TAREFA CHATA”...
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!

DÚVIDAS?

Agradeço a todos pela oportunidade. [=
http://uaihebert.com
[email protected]
Download

Migrando de JDBC para JPA