Migrando de JDBC para JPA

Slides:



Advertisements
Apresentações semelhantes
Tecnologia de Banco de Dados Grupo 3: Diógenes LíbanoElton S. Vianna Euglen AssisLisa Hayashida Marcelo da Cruz SalvadorRicardo Takemura Gerenciador de.
Advertisements

Teste de Software.
APLICAÇÕES DE LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS ACESSO A BANCO DE DADOS COM O JDBC Prof. Thiago Pereira Rique
Sistemas de Informação Redes de Computadores
APRESENTAÇÃO DE ESTÁGIO
Hibernate Apresentação
Ferramenta para teste de software
Desenvolvimento de Soluções WEB Eduardo Martins Guerra.
Introdução a JDBC Eduardo Martins Guerra Instituto Tecnológico de Aeronáutica Curso de Pós-Graduação em Engenharia de Software Programação Distribuída.
Introdução a EJB 3.0 Eduardo Martins Guerra Instituto Tecnológico de Aeronáutica Curso de Pós-Graduação em Engenharia de Software Programação Distribuída.
Java Persistence API (JPA) Eduardo Martins Guerra Instituto Tecnológico de Aeronáutica Curso de Pós-Graduação em Engenharia de Software Programação Distribuída.
Tecnologias para Internet
B ANCO DE D ADOS E JDBC Profa. Msc. Cintia Carvalho Oliveira Mestre em Ciência da Computação – UFU Bacharel em Ciência da Computação - UFJF 1.
Hibernate com JPA Prática
Rodrigo Cristiano Silva
Introdução Meu Portfolio representa tudo que aprendi no primeiro trimestre da disciplina de matemática no ano de Desde o primeiro dia de aula recebemos.
Projeto Sistema de Gestão Bibliográfica (SGB) Fábrica de Software INF - UFG.
Singleton e Adapter Professor: Nazareno Andrade
JPA - Java Persistence API
Design Patterns / Acesso ao banco de dados (java.sql)
A autoria - II.
JSP / Servlets Avançado
FTIN FORMAÇÃO TÉCNICA EM INFORMÁTICA Módulo de Programação Prof. Flávio Dantas.
Introdução ao Hibernate
Vânia Maria P. Vidal, José Maria Monteiro, Luís Eufrasio T. Neto
Prof. Alexandre Monteiro Recife
JDBC Java Database Connectivity. JDBC Especificação para uso de base de dados em aplicações e applets JAVA; API para uso de drivers JDBC; Compatível com.
Curso de Aprendizado Industrial Desenvolvedor WEB Disciplina: Programação Orientada a Objetos I Professora: Cheli Mendes Costa This.
Curso de Aprendizado Industrial Desenvolvedor WEB Disciplina: Programação Orientada a Objetos I Professora: Cheli Mendes Costa Como criar uma Classe e.
Curso de Aprendizado Industrial Desenvolvedor WEB Disciplina: Programação Orientada a Objetos I Professora: Cheli Mendes Costa Classes e Objetos em Java.
Curso de Aprendizado Industrial Desenvolvedor WEB
Arquitetura de Desenvolvimento Web MVC vs. Three Tiers
Criação do Create, Read, List, Update e Delete Desenvolvimento de Aplicações Web PROFA. MSC. CINTIA CARVALHO OLIVEIRA DOUTORANDA EM CIÊNCIA DA COMPUTAÇÃO.
Configuração do Ambiente de programação
Implementação MVC Pedro Antonino.
Aplicativos Web Com Orientação a Objetos – Java Server Pages(JSP) Prof. Odair
Fundamentos de Banco de Dados Fundamentos de Banco de Dados Prof. Gale 2º. Semestre 2008.
Programação para Web Unidade 06 – Java Beans e BDs Prof.: Henrique Santos.
Padrões de Interação com o Usuário
Unidade 1 – Introdução a J2EE Prof.: Henrique Santos
MPS – Aula prática Diagrama de Pacotes / Esteriótipos Web
Hibernate Mapeamento Objeto-Relacional Aula Prática I
CURSO JAVA BÁSICO Módulo JDBC – slide 1 MóduloJDBC.
FTIN FORMAÇÃO TÉCNICA EM INFORMÁTICA Módulo de Programação Prof. Bruno Maciel.
Treinamento e entrega do projeto
WDM Web Data Modeling UCB – Universidade Católica de Brasília
MAKE: UM FRAMEWORK PARA GERAÇÃO DE DADOS PARA TESTES UNITÁRIOS EM JAVA Guilherme Braga Viana BahiaAluno: Orientador:Prof. Joaquim Pedro C. de Oliveira,
Novidades... Quartetos; – Equilibrar Conhecimento; – Aprender a Ensinar; – Trabalho em Equipe; – Facilitar a Vida do Professor. – Então, definam seus grupos.
O que é Domain Driven Design Especificação Design Refactor Testes Quanto tempo isso leva?
DBSync4J Uma Ferramenta para Apoio na Sincronização entre Bases de Dados de Desenvolvimento e Produção Autores: Ana Carolina Ferreira Lins Rafael Fernandes.
LINQ e Entity Framework
Banco de Dados Ágeis e Refatoração SC1: Métodos Ágeis de Desenvolvimento de Software Danilo Sato & João Eduardo Ferreira IV Experimental.
DBSync4J Uma Ferramenta para Apoio na Sincronização entre Bases de Dados de Desenvolvimento e Produção Autores: Ana Carolina Ferreira Lins Rafael Fernandes.
ACCESS AULA 01 Na primeira aula você terá uma visão geral do Microsoft Access, conhecerá sua evolução e suas versões. Ao final da aula você irá possuir.
Leo Silva Leonardo Murta Luiz Viana Persistência em Java.
Alanna Fagundes Almeida nº02 Ipanema Manutenção preventiva/corretiva de computadores.
Treinamento AJAX Waelson Negreiros Blog:
Acesso a Banco de Dados com JDBC e DAO
Acessando banco de dados com JAVA.  Linguagem independente de plataforma; ◦ “Write once, run anywhere” ◦ JVM  Java Virtual Machine  Mecanismo que permite.
Programação para Web I AULA 2 BANCO DE DADOS.
Programação PHP Gustavo Eduardo Terra.
PSW1 Prof. Rafael. Persistência Atividade que permite que o estado de um objeto exista mesmo após a extinção do processo computacional que o criou. Em.
Desenvolvimento WEB II Ajax – Utilização de Frameworks Javascript Professora: Kelly de Paula Cunha.
Desenvolvimento WEB II Professora: Kelly de Paula Cunha.
Provedor de Dados Instalação e Configuração João Lima.
Testes de Unidade. 2 Pauta Testes de Unidade; Testes de Unidade; Desenvolvimento orientado a testes; Desenvolvimento orientado a testes; Testes unitários.
Persistência de dados e padrão DAO
Prof.: Jean Carlo Mendes
Prof.: Jean Carlo Mendes
Engenharia de Software II
Transcrição da apresentação:

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 contato@uaihebert.com