1 / 36

Migrando de JDBC para JPA

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

Download Presentation

Migrando de JDBC para JPA

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Migrando de JDBC para JPA Hébert Coelho de Oliveira

  2. 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

  3. 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

  4. Facilidades do JDBC • Drivers • ResultStatement • Migrar de Banco de dados* • Fácil configuração: URL, Rede, Instalação

  5. Inserindo no banco • E como ficaria 1x1?

  6. Inserindo em Relacionamento 1x1 • E como ficaria 1xN?

  7. Inserindo em Relacionamento 1xN • E se fosse N x N?

  8. 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?

  9. Campos Dinâmicos • Bastante suscetível a erros, não?

  10. Onde está o erro?

  11. Onde está o erro?

  12. Onde está o erro?

  13. Onde está o erro?

  14. Como seria uma consulta • Imagine se essa classe tivesse os 30 atributos retornados nessa consulta?

  15. Você poderia ter a seguinte reação....

  16. Ou então...

  17. E quem te passou a “tarefa chata”...

  18. 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?

  19. 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???

  20. Configuração • Arquivo /META-INF/persistence.xml

  21. Bibliotecas • Bibliotecas da Implementação

  22. Entity • O que é uma Entity? O que uma classe precisa para ser uma Entity?

  23. Entity

  24. Inserindo no banco • E como ficaria 1x1?

  25. Relacionamento 1x1 (One To One) • Uni direcional: • Bi direcional

  26. Inserindo em Relacionamento 1x1 • E como ficaria 1xN?

  27. Relacionamento 1xN (One To Many) • Uni direcional: • Bi direcional

  28. Inserindo em Relacionamento 1xN • E se fosse N x N?

  29. Relacionamento N x N (Many To Many) • Uni direcional: • Bi direcional

  30. Inserindo em Relacionamento N x N

  31. Como seria uma consulta • Imagine se essa classe tivesse os 30 atributos retornados nessa consulta?

  32. Você poderia ter a seguinte reação....

  33. Ou então...

  34. E quem te passou a “tarefa chata”...

  35. 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!

  36. Dúvidas? • Agradeço a todos pela oportunidade. [= http://uaihebert.com contato@uaihebert.com

More Related