MIGRANDO DE JDBC PARA JPAHé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
Top Related