![Page 1: PROGRAMAÇÃO SERVIDOR EM SISTEMAS WEB · 2011-09-15 · Biblioteca Virtual Java: Como Programar (6ª Edição) Páginas 894 a 904 e 906 a 918 Padrões de Projeto ... •No caso de](https://reader034.vdocuments.com.br/reader034/viewer/2022050213/5f5fb48c32f16f4dc84c4c4d/html5/thumbnails/1.jpg)
PROGRAMAÇÃO SERVIDOR EM SISTEMAS WEB
Prof. Dr. Daniel Caetano
2011 - 2
PADRÕES MVC E DAO
![Page 2: PROGRAMAÇÃO SERVIDOR EM SISTEMAS WEB · 2011-09-15 · Biblioteca Virtual Java: Como Programar (6ª Edição) Páginas 894 a 904 e 906 a 918 Padrões de Projeto ... •No caso de](https://reader034.vdocuments.com.br/reader034/viewer/2022050213/5f5fb48c32f16f4dc84c4c4d/html5/thumbnails/2.jpg)
• Padrão de Desenvolvimento? 1
• O Conceito de Padrão de Projeto 2
• Padrão MVC 3
• Persistência 4
• MVC Nível 1 e 2 5
• Padrão DAO 6
• Outros Padrões de Persistência 7
Visão Geral
![Page 3: PROGRAMAÇÃO SERVIDOR EM SISTEMAS WEB · 2011-09-15 · Biblioteca Virtual Java: Como Programar (6ª Edição) Páginas 894 a 904 e 906 a 918 Padrões de Projeto ... •No caso de](https://reader034.vdocuments.com.br/reader034/viewer/2022050213/5f5fb48c32f16f4dc84c4c4d/html5/thumbnails/3.jpg)
Material de Estudo
Material Acesso ao Material
Notas de Aula http://www.caetano.eng.br/aulas/psw/ (Aula 8)
Apresentação http://www.caetano.eng.br/aulas/psw/ (Aula 8)
Material Didático Padrões de Arquitetura de Aplicações Corporativas, páginas 37 a 44, 71 a77 e 295 a 317
Biblioteca Virtual Java: Como Programar (6ª Edição) Páginas 894 a 904 e 906 a 918 Padrões de Projeto
Google “Design Patterns”
![Page 4: PROGRAMAÇÃO SERVIDOR EM SISTEMAS WEB · 2011-09-15 · Biblioteca Virtual Java: Como Programar (6ª Edição) Páginas 894 a 904 e 906 a 918 Padrões de Projeto ... •No caso de](https://reader034.vdocuments.com.br/reader034/viewer/2022050213/5f5fb48c32f16f4dc84c4c4d/html5/thumbnails/4.jpg)
Objetivos
• Compreender o conceito de Padrões de Projeto
• Compreender o Padrão MVC
• Conhecer o princípio de alguns dos padrões de persistência, como o padrão DAO
• Tomar primeiro contato com a ideia da Java Persistence API
![Page 5: PROGRAMAÇÃO SERVIDOR EM SISTEMAS WEB · 2011-09-15 · Biblioteca Virtual Java: Como Programar (6ª Edição) Páginas 894 a 904 e 906 a 918 Padrões de Projeto ... •No caso de](https://reader034.vdocuments.com.br/reader034/viewer/2022050213/5f5fb48c32f16f4dc84c4c4d/html5/thumbnails/5.jpg)
O QUE É PADRÃO DE DESENVOLVIMENTO?
![Page 6: PROGRAMAÇÃO SERVIDOR EM SISTEMAS WEB · 2011-09-15 · Biblioteca Virtual Java: Como Programar (6ª Edição) Páginas 894 a 904 e 906 a 918 Padrões de Projeto ... •No caso de](https://reader034.vdocuments.com.br/reader034/viewer/2022050213/5f5fb48c32f16f4dc84c4c4d/html5/thumbnails/6.jpg)
Introdução • Nos primeiros exemplos...
– Tínhamos um Servlet único...
– Que foi dividido: Processamento e Apresentação
![Page 7: PROGRAMAÇÃO SERVIDOR EM SISTEMAS WEB · 2011-09-15 · Biblioteca Virtual Java: Como Programar (6ª Edição) Páginas 894 a 904 e 906 a 918 Padrões de Projeto ... •No caso de](https://reader034.vdocuments.com.br/reader034/viewer/2022050213/5f5fb48c32f16f4dc84c4c4d/html5/thumbnails/7.jpg)
Introdução • Essa separação é uma ideia aleatória?
• Será que é a melhor forma de fazer?
![Page 8: PROGRAMAÇÃO SERVIDOR EM SISTEMAS WEB · 2011-09-15 · Biblioteca Virtual Java: Como Programar (6ª Edição) Páginas 894 a 904 e 906 a 918 Padrões de Projeto ... •No caso de](https://reader034.vdocuments.com.br/reader034/viewer/2022050213/5f5fb48c32f16f4dc84c4c4d/html5/thumbnails/8.jpg)
Padrões de Desenvolvimento • Desenvolvimento → Dúvida
• Como dividir o sistema em partes menores?
– Partes pequenas o suficiente (para implementar)
– Grandes o suficiente (para fazer algo significativo)
• Diretrizes
– ↑Manutibilidade (flexibilidade e extensibilidade)
– ↓Custos
– ↑ Reusabilidade
• Como fazer?
![Page 9: PROGRAMAÇÃO SERVIDOR EM SISTEMAS WEB · 2011-09-15 · Biblioteca Virtual Java: Como Programar (6ª Edição) Páginas 894 a 904 e 906 a 918 Padrões de Projeto ... •No caso de](https://reader034.vdocuments.com.br/reader034/viewer/2022050213/5f5fb48c32f16f4dc84c4c4d/html5/thumbnails/9.jpg)
Padrões de Desenvolvimento • Muitas coisas para pensar...
• Como fazer?
![Page 10: PROGRAMAÇÃO SERVIDOR EM SISTEMAS WEB · 2011-09-15 · Biblioteca Virtual Java: Como Programar (6ª Edição) Páginas 894 a 904 e 906 a 918 Padrões de Projeto ... •No caso de](https://reader034.vdocuments.com.br/reader034/viewer/2022050213/5f5fb48c32f16f4dc84c4c4d/html5/thumbnails/10.jpg)
Padrões de Desenvolvimento • Ei, que tal fazer como
nossos ancestrais têm feito?
• É! Vamos lá resolver essa parada...
![Page 11: PROGRAMAÇÃO SERVIDOR EM SISTEMAS WEB · 2011-09-15 · Biblioteca Virtual Java: Como Programar (6ª Edição) Páginas 894 a 904 e 906 a 918 Padrões de Projeto ... •No caso de](https://reader034.vdocuments.com.br/reader034/viewer/2022050213/5f5fb48c32f16f4dc84c4c4d/html5/thumbnails/11.jpg)
Padrões de Desenvolvimento • Padrões de Desenvolvimento
– Conjunto das “Melhores Práticas” conhecidas
• Isso significa que não vamos ter que pensar?
![Page 12: PROGRAMAÇÃO SERVIDOR EM SISTEMAS WEB · 2011-09-15 · Biblioteca Virtual Java: Como Programar (6ª Edição) Páginas 894 a 904 e 906 a 918 Padrões de Projeto ... •No caso de](https://reader034.vdocuments.com.br/reader034/viewer/2022050213/5f5fb48c32f16f4dc84c4c4d/html5/thumbnails/12.jpg)
Padrões de Desenvolvimento • Pensar no que é importante...
– Vamos direto ao ponto!
![Page 13: PROGRAMAÇÃO SERVIDOR EM SISTEMAS WEB · 2011-09-15 · Biblioteca Virtual Java: Como Programar (6ª Edição) Páginas 894 a 904 e 906 a 918 Padrões de Projeto ... •No caso de](https://reader034.vdocuments.com.br/reader034/viewer/2022050213/5f5fb48c32f16f4dc84c4c4d/html5/thumbnails/13.jpg)
PADRÕES DE PROJETO
![Page 14: PROGRAMAÇÃO SERVIDOR EM SISTEMAS WEB · 2011-09-15 · Biblioteca Virtual Java: Como Programar (6ª Edição) Páginas 894 a 904 e 906 a 918 Padrões de Projeto ... •No caso de](https://reader034.vdocuments.com.br/reader034/viewer/2022050213/5f5fb48c32f16f4dc84c4c4d/html5/thumbnails/14.jpg)
O Que é um Padrão de Projeto • Dividir e Organizar um Sistema...
– ...de maneira elegante
• Solucionar problemas comuns...
– ... de maneira elegante, mas não óbvia!
![Page 15: PROGRAMAÇÃO SERVIDOR EM SISTEMAS WEB · 2011-09-15 · Biblioteca Virtual Java: Como Programar (6ª Edição) Páginas 894 a 904 e 906 a 918 Padrões de Projeto ... •No caso de](https://reader034.vdocuments.com.br/reader034/viewer/2022050213/5f5fb48c32f16f4dc84c4c4d/html5/thumbnails/15.jpg)
O Que é um Padrão de Projeto • Há diversos níveis de “detalhamento”
• Há padrões “mais genéricos”
– Diretrizes sobre organização
– Padrões de Arquitetura
• Há padrões “mais específicos”
– Como resolver um problema específico
– “Padrões de Implementação”
• Padrões de Criação
• Padrões de Estrutura
• Padrões de Comportamento
![Page 16: PROGRAMAÇÃO SERVIDOR EM SISTEMAS WEB · 2011-09-15 · Biblioteca Virtual Java: Como Programar (6ª Edição) Páginas 894 a 904 e 906 a 918 Padrões de Projeto ... •No caso de](https://reader034.vdocuments.com.br/reader034/viewer/2022050213/5f5fb48c32f16f4dc84c4c4d/html5/thumbnails/16.jpg)
O Que é um Padrão de Projeto • Todo padrão de projeto tem:
– Um nome
• Que identifique claramente o que o padrão faz
– Um objetivo
• Que descreva com detalhes a razão de ser do padrão
– Um problema
• Uma situação de projeto cuja solução não é óbvia
– Uma solução
• Detalhes de implementação da solução elegante
– Consequências
• Não existe almoço grátis...
![Page 17: PROGRAMAÇÃO SERVIDOR EM SISTEMAS WEB · 2011-09-15 · Biblioteca Virtual Java: Como Programar (6ª Edição) Páginas 894 a 904 e 906 a 918 Padrões de Projeto ... •No caso de](https://reader034.vdocuments.com.br/reader034/viewer/2022050213/5f5fb48c32f16f4dc84c4c4d/html5/thumbnails/17.jpg)
PADRÕES MVC
![Page 18: PROGRAMAÇÃO SERVIDOR EM SISTEMAS WEB · 2011-09-15 · Biblioteca Virtual Java: Como Programar (6ª Edição) Páginas 894 a 904 e 906 a 918 Padrões de Projeto ... •No caso de](https://reader034.vdocuments.com.br/reader034/viewer/2022050213/5f5fb48c32f16f4dc84c4c4d/html5/thumbnails/18.jpg)
Padrão MVC • Modelo...
• Visão...
• Controle...
• Mas o que é esse padrão?
• Para entender...
• Vejamos os problemas que levaram a ele
modelagem dos dados
apresentação da aplicação
processamento da aplicação
![Page 19: PROGRAMAÇÃO SERVIDOR EM SISTEMAS WEB · 2011-09-15 · Biblioteca Virtual Java: Como Programar (6ª Edição) Páginas 894 a 904 e 906 a 918 Padrões de Projeto ... •No caso de](https://reader034.vdocuments.com.br/reader034/viewer/2022050213/5f5fb48c32f16f4dc84c4c4d/html5/thumbnails/19.jpg)
Padrão MVC • Um mesmo aplicativo...
– Diversos tipos de equipamento
![Page 20: PROGRAMAÇÃO SERVIDOR EM SISTEMAS WEB · 2011-09-15 · Biblioteca Virtual Java: Como Programar (6ª Edição) Páginas 894 a 904 e 906 a 918 Padrões de Projeto ... •No caso de](https://reader034.vdocuments.com.br/reader034/viewer/2022050213/5f5fb48c32f16f4dc84c4c4d/html5/thumbnails/20.jpg)
Padrão MVC • Um mesmo aplicativo...
– Diversos tipos de equipamento
![Page 21: PROGRAMAÇÃO SERVIDOR EM SISTEMAS WEB · 2011-09-15 · Biblioteca Virtual Java: Como Programar (6ª Edição) Páginas 894 a 904 e 906 a 918 Padrões de Projeto ... •No caso de](https://reader034.vdocuments.com.br/reader034/viewer/2022050213/5f5fb48c32f16f4dc84c4c4d/html5/thumbnails/21.jpg)
Padrão MVC • Um mesmo aplicativo...
– Diversos tipos de equipamento
Repetição de Código!
![Page 22: PROGRAMAÇÃO SERVIDOR EM SISTEMAS WEB · 2011-09-15 · Biblioteca Virtual Java: Como Programar (6ª Edição) Páginas 894 a 904 e 906 a 918 Padrões de Projeto ... •No caso de](https://reader034.vdocuments.com.br/reader034/viewer/2022050213/5f5fb48c32f16f4dc84c4c4d/html5/thumbnails/22.jpg)
Padrão MVC • Um mesmo aplicativo...
– Diversos tipos de equipamento
Retrabalho!
![Page 23: PROGRAMAÇÃO SERVIDOR EM SISTEMAS WEB · 2011-09-15 · Biblioteca Virtual Java: Como Programar (6ª Edição) Páginas 894 a 904 e 906 a 918 Padrões de Projeto ... •No caso de](https://reader034.vdocuments.com.br/reader034/viewer/2022050213/5f5fb48c32f16f4dc84c4c4d/html5/thumbnails/23.jpg)
Padrão MVC • Separar apresentação e processamento?
![Page 24: PROGRAMAÇÃO SERVIDOR EM SISTEMAS WEB · 2011-09-15 · Biblioteca Virtual Java: Como Programar (6ª Edição) Páginas 894 a 904 e 906 a 918 Padrões de Projeto ... •No caso de](https://reader034.vdocuments.com.br/reader034/viewer/2022050213/5f5fb48c32f16f4dc84c4c4d/html5/thumbnails/24.jpg)
Padrão MVC • Reaproveitar modelos de dados...
– Cliente é usado em várias aplicações
![Page 25: PROGRAMAÇÃO SERVIDOR EM SISTEMAS WEB · 2011-09-15 · Biblioteca Virtual Java: Como Programar (6ª Edição) Páginas 894 a 904 e 906 a 918 Padrões de Projeto ... •No caso de](https://reader034.vdocuments.com.br/reader034/viewer/2022050213/5f5fb48c32f16f4dc84c4c4d/html5/thumbnails/25.jpg)
Padrão MVC • Separar modelo do restante
![Page 26: PROGRAMAÇÃO SERVIDOR EM SISTEMAS WEB · 2011-09-15 · Biblioteca Virtual Java: Como Programar (6ª Edição) Páginas 894 a 904 e 906 a 918 Padrões de Projeto ... •No caso de](https://reader034.vdocuments.com.br/reader034/viewer/2022050213/5f5fb48c32f16f4dc84c4c4d/html5/thumbnails/26.jpg)
Padrão MVC • Objetivo: facilitar desenvolvimento,
manutenção e reaproveitamento de código
• Mudanças mais frequentes
– Interface com o Usuário (visão)
• Mudanças comuns
– Modelo de dados
• Mudanças menos comuns
– Processo de negócio (processamento)
![Page 27: PROGRAMAÇÃO SERVIDOR EM SISTEMAS WEB · 2011-09-15 · Biblioteca Virtual Java: Como Programar (6ª Edição) Páginas 894 a 904 e 906 a 918 Padrões de Projeto ... •No caso de](https://reader034.vdocuments.com.br/reader034/viewer/2022050213/5f5fb48c32f16f4dc84c4c4d/html5/thumbnails/27.jpg)
Padrão MVC • Objetivo: facilitar desenvolvimento,
manutenção e reaproveitamento de código
• Desejamos
– Mudar a interface sem mudar o resto
– Mudar os dados sem mudar o resto
– Mudar o processo sem mudar o resto
• A separação em três conjuntos facilita!
![Page 28: PROGRAMAÇÃO SERVIDOR EM SISTEMAS WEB · 2011-09-15 · Biblioteca Virtual Java: Como Programar (6ª Edição) Páginas 894 a 904 e 906 a 918 Padrões de Projeto ... •No caso de](https://reader034.vdocuments.com.br/reader034/viewer/2022050213/5f5fb48c32f16f4dc84c4c4d/html5/thumbnails/28.jpg)
Padrão MVC • Solução
• Modelo – Componentes de Dados e Persistência
– Armazenam os dados
• Visão – Componentes de interação com usuário
– Janelas, formulários etc.
• Controle – Componentes de processamento
– Coordenam todos os componentes para produzir o resultado desejado pelo usuário
![Page 29: PROGRAMAÇÃO SERVIDOR EM SISTEMAS WEB · 2011-09-15 · Biblioteca Virtual Java: Como Programar (6ª Edição) Páginas 894 a 904 e 906 a 918 Padrões de Projeto ... •No caso de](https://reader034.vdocuments.com.br/reader034/viewer/2022050213/5f5fb48c32f16f4dc84c4c4d/html5/thumbnails/29.jpg)
Padrão MVC • Solução
• Modelo – Componentes de Dados e Persistência
– Armazenam os dados
• Visão – Componentes de interação com usuário
– Janelas, formulários etc.
• Controle – Componentes de processamento
– Coordenam todos os componentes para produzir o resultado desejado pelo usuário
Um não se intromete na
função do outro!
![Page 30: PROGRAMAÇÃO SERVIDOR EM SISTEMAS WEB · 2011-09-15 · Biblioteca Virtual Java: Como Programar (6ª Edição) Páginas 894 a 904 e 906 a 918 Padrões de Projeto ... •No caso de](https://reader034.vdocuments.com.br/reader034/viewer/2022050213/5f5fb48c32f16f4dc84c4c4d/html5/thumbnails/30.jpg)
Padrão MVC • Solução
![Page 31: PROGRAMAÇÃO SERVIDOR EM SISTEMAS WEB · 2011-09-15 · Biblioteca Virtual Java: Como Programar (6ª Edição) Páginas 894 a 904 e 906 a 918 Padrões de Projeto ... •No caso de](https://reader034.vdocuments.com.br/reader034/viewer/2022050213/5f5fb48c32f16f4dc84c4c4d/html5/thumbnails/31.jpg)
Padrão MVC na Web • MVC: Aplicações Desktop
– Seguir à risca?
– Seguir linhas gerais?
• No caso de Aplicações Web em Java...
• Visão: HTML e formulários – Usualmente JSPs
• Modelo: Classes de Entidade – Dados não nativos
• Controle: Processo de negócio – Usualmente Servlets
![Page 32: PROGRAMAÇÃO SERVIDOR EM SISTEMAS WEB · 2011-09-15 · Biblioteca Virtual Java: Como Programar (6ª Edição) Páginas 894 a 904 e 906 a 918 Padrões de Projeto ... •No caso de](https://reader034.vdocuments.com.br/reader034/viewer/2022050213/5f5fb48c32f16f4dc84c4c4d/html5/thumbnails/32.jpg)
Padrão MVC na Web • MVC: Aplicações Desktop
– Seguir à risca?
– Seguir linhas gerais?
• No caso de Aplicações Web em Java...
• Visão: HTML e formulários – Usualmente JSPs
• Modelo: Classes de Entidade – Dados não nativos
• Controle: Processo de negócio – Usualmente Servlets
E o Banco de Dados?
![Page 33: PROGRAMAÇÃO SERVIDOR EM SISTEMAS WEB · 2011-09-15 · Biblioteca Virtual Java: Como Programar (6ª Edição) Páginas 894 a 904 e 906 a 918 Padrões de Projeto ... •No caso de](https://reader034.vdocuments.com.br/reader034/viewer/2022050213/5f5fb48c32f16f4dc84c4c4d/html5/thumbnails/33.jpg)
PERSISTÊNCIA
![Page 34: PROGRAMAÇÃO SERVIDOR EM SISTEMAS WEB · 2011-09-15 · Biblioteca Virtual Java: Como Programar (6ª Edição) Páginas 894 a 904 e 906 a 918 Padrões de Projeto ... •No caso de](https://reader034.vdocuments.com.br/reader034/viewer/2022050213/5f5fb48c32f16f4dc84c4c4d/html5/thumbnails/34.jpg)
Persistência • Modelo MVC
– Concebido para sistemas de memória persistente
– Exemplo atual: celular com java
• Não há disco x memória
– O programa nunca para de executar... ele só é “congelado”
– Se você criou um cliente, ele fica lá!
– Para que armazenar?
• Isso é o mesmo que ocorre no PC?
![Page 35: PROGRAMAÇÃO SERVIDOR EM SISTEMAS WEB · 2011-09-15 · Biblioteca Virtual Java: Como Programar (6ª Edição) Páginas 894 a 904 e 906 a 918 Padrões de Projeto ... •No caso de](https://reader034.vdocuments.com.br/reader034/viewer/2022050213/5f5fb48c32f16f4dc84c4c4d/html5/thumbnails/35.jpg)
Persistência • No PC, a memória é volátil!
• Desligar: cliente da memória “vai pro brejo”
• Precisamos “simular” a persistência
– Criar um elemento que armazene e recupere nossos clientes quando necessário
• A ideia é armazenar os dados não nativos em um banco de dados!
– Dados Não Nativos: Classes de Entidade ...
– ... a mesma do Entidade-Relacionamento
![Page 36: PROGRAMAÇÃO SERVIDOR EM SISTEMAS WEB · 2011-09-15 · Biblioteca Virtual Java: Como Programar (6ª Edição) Páginas 894 a 904 e 906 a 918 Padrões de Projeto ... •No caso de](https://reader034.vdocuments.com.br/reader034/viewer/2022050213/5f5fb48c32f16f4dc84c4c4d/html5/thumbnails/36.jpg)
Persistência • Existem duas formas básicas de implementar
a persistência
• MVC Nível 1
– A própria entidade cuida de sua persistência
– Ela é quem acessa o banco de dados...
• MVC Nível 2
• Um elemento externo cuida da persistência
• Isola as classes de entidade do banco de dados
![Page 37: PROGRAMAÇÃO SERVIDOR EM SISTEMAS WEB · 2011-09-15 · Biblioteca Virtual Java: Como Programar (6ª Edição) Páginas 894 a 904 e 906 a 918 Padrões de Projeto ... •No caso de](https://reader034.vdocuments.com.br/reader034/viewer/2022050213/5f5fb48c32f16f4dc84c4c4d/html5/thumbnails/37.jpg)
PADRÃO DAO
![Page 38: PROGRAMAÇÃO SERVIDOR EM SISTEMAS WEB · 2011-09-15 · Biblioteca Virtual Java: Como Programar (6ª Edição) Páginas 894 a 904 e 906 a 918 Padrões de Projeto ... •No caso de](https://reader034.vdocuments.com.br/reader034/viewer/2022050213/5f5fb48c32f16f4dc84c4c4d/html5/thumbnails/38.jpg)
Padrão DAO • Uso inicial do MVC no PC
– MVC Nível 1
– Entidades acessavam o banco de dados
![Page 39: PROGRAMAÇÃO SERVIDOR EM SISTEMAS WEB · 2011-09-15 · Biblioteca Virtual Java: Como Programar (6ª Edição) Páginas 894 a 904 e 906 a 918 Padrões de Projeto ... •No caso de](https://reader034.vdocuments.com.br/reader034/viewer/2022050213/5f5fb48c32f16f4dc84c4c4d/html5/thumbnails/39.jpg)
Padrão DAO • Uso inicial do MVC no PC
– MVC Nível 1
– Mas cada contrato exigia o seu banco de dados
![Page 40: PROGRAMAÇÃO SERVIDOR EM SISTEMAS WEB · 2011-09-15 · Biblioteca Virtual Java: Como Programar (6ª Edição) Páginas 894 a 904 e 906 a 918 Padrões de Projeto ... •No caso de](https://reader034.vdocuments.com.br/reader034/viewer/2022050213/5f5fb48c32f16f4dc84c4c4d/html5/thumbnails/40.jpg)
Padrão DAO • Solução: Separar o acesso ao banco!
– MVC Nível 2
![Page 41: PROGRAMAÇÃO SERVIDOR EM SISTEMAS WEB · 2011-09-15 · Biblioteca Virtual Java: Como Programar (6ª Edição) Páginas 894 a 904 e 906 a 918 Padrões de Projeto ... •No caso de](https://reader034.vdocuments.com.br/reader034/viewer/2022050213/5f5fb48c32f16f4dc84c4c4d/html5/thumbnails/41.jpg)
Padrão DAO • Esses caras...
– São objetos de acesso a dados
• Data
• Access
• Objects
• Padrão criado pela Microsoft
• É um “construtor” de objetos com base nas informações do banco de dados
![Page 42: PROGRAMAÇÃO SERVIDOR EM SISTEMAS WEB · 2011-09-15 · Biblioteca Virtual Java: Como Programar (6ª Edição) Páginas 894 a 904 e 906 a 918 Padrões de Projeto ... •No caso de](https://reader034.vdocuments.com.br/reader034/viewer/2022050213/5f5fb48c32f16f4dc84c4c4d/html5/thumbnails/42.jpg)
Padrão DAO • Padrão de Nome
– NomeDaEntidadeDAO
• Cliente...
– ClienteDAO
• Produto...
– ProdutoDAO
• Como usar isso?
![Page 43: PROGRAMAÇÃO SERVIDOR EM SISTEMAS WEB · 2011-09-15 · Biblioteca Virtual Java: Como Programar (6ª Edição) Páginas 894 a 904 e 906 a 918 Padrões de Projeto ... •No caso de](https://reader034.vdocuments.com.br/reader034/viewer/2022050213/5f5fb48c32f16f4dc84c4c4d/html5/thumbnails/43.jpg)
Padrão DAO • Armazenar um cliente?
ClienteDAO.acidiona(objeto_cliente);
• Buscar um cliente?
Cliente c;
c = ClienteDAO.busca(“012.345.678-90”);
• Fácil!
![Page 44: PROGRAMAÇÃO SERVIDOR EM SISTEMAS WEB · 2011-09-15 · Biblioteca Virtual Java: Como Programar (6ª Edição) Páginas 894 a 904 e 906 a 918 Padrões de Projeto ... •No caso de](https://reader034.vdocuments.com.br/reader034/viewer/2022050213/5f5fb48c32f16f4dc84c4c4d/html5/thumbnails/44.jpg)
OUTROS PADRÕES DE PERSISTÊNCIA
![Page 45: PROGRAMAÇÃO SERVIDOR EM SISTEMAS WEB · 2011-09-15 · Biblioteca Virtual Java: Como Programar (6ª Edição) Páginas 894 a 904 e 906 a 918 Padrões de Projeto ... •No caso de](https://reader034.vdocuments.com.br/reader034/viewer/2022050213/5f5fb48c32f16f4dc84c4c4d/html5/thumbnails/45.jpg)
Outros Padrões de Persistência • DAO é o único padrão?
• Claro que não!
• Mas, talvez nem precisemos nos preocupar...
– Existem frameworks prontos para persistência!
– Castor...
– Hibernate...
– Speeder...
– TopLink...
–Dentre muitos outros...
![Page 46: PROGRAMAÇÃO SERVIDOR EM SISTEMAS WEB · 2011-09-15 · Biblioteca Virtual Java: Como Programar (6ª Edição) Páginas 894 a 904 e 906 a 918 Padrões de Projeto ... •No caso de](https://reader034.vdocuments.com.br/reader034/viewer/2022050213/5f5fb48c32f16f4dc84c4c4d/html5/thumbnails/46.jpg)
Outros Padrões de Persistência • Cada framework funcionava de um jeito...
• Então a Sun criou o JPA
– Java
– Persistence
– API
• O que é uma API?
– Quais “comandos” deve ter a biblioteca/framework
– Define como esses “comandos” devem funcionar
• O que fazem
• Como são usados (nome, parâmetros etc.)
![Page 47: PROGRAMAÇÃO SERVIDOR EM SISTEMAS WEB · 2011-09-15 · Biblioteca Virtual Java: Como Programar (6ª Edição) Páginas 894 a 904 e 906 a 918 Padrões de Projeto ... •No caso de](https://reader034.vdocuments.com.br/reader034/viewer/2022050213/5f5fb48c32f16f4dc84c4c4d/html5/thumbnails/47.jpg)
Outros Padrões de Persistência • Maiora dos frameworks: implementa JPA
• Hibernate JPA
• OpenJPA
• TopLink
• Dentre outros...
• Veremos JPA no final do curso!
![Page 48: PROGRAMAÇÃO SERVIDOR EM SISTEMAS WEB · 2011-09-15 · Biblioteca Virtual Java: Como Programar (6ª Edição) Páginas 894 a 904 e 906 a 918 Padrões de Projeto ... •No caso de](https://reader034.vdocuments.com.br/reader034/viewer/2022050213/5f5fb48c32f16f4dc84c4c4d/html5/thumbnails/48.jpg)
CONCLUSÕES
![Page 49: PROGRAMAÇÃO SERVIDOR EM SISTEMAS WEB · 2011-09-15 · Biblioteca Virtual Java: Como Programar (6ª Edição) Páginas 894 a 904 e 906 a 918 Padrões de Projeto ... •No caso de](https://reader034.vdocuments.com.br/reader034/viewer/2022050213/5f5fb48c32f16f4dc84c4c4d/html5/thumbnails/49.jpg)
Resumo
• Padrões de Desenvolvimento oferecem diretrizes ou soluções para resolver problemas comuns
• Não resolve a vida do programador, mas simplifica!
• Às vezes implementar um padrão não é o jeito mais fácil, mas é o melhor a longo prazo
• TAREFA – Trabalho 2a para turmas de 4ª!
![Page 50: PROGRAMAÇÃO SERVIDOR EM SISTEMAS WEB · 2011-09-15 · Biblioteca Virtual Java: Como Programar (6ª Edição) Páginas 894 a 904 e 906 a 918 Padrões de Projeto ... •No caso de](https://reader034.vdocuments.com.br/reader034/viewer/2022050213/5f5fb48c32f16f4dc84c4c4d/html5/thumbnails/50.jpg)
Próxima Aula
• Como implementar isso tudo?! – Como criar a entidade
(bean)
– MVC Nível 1
![Page 51: PROGRAMAÇÃO SERVIDOR EM SISTEMAS WEB · 2011-09-15 · Biblioteca Virtual Java: Como Programar (6ª Edição) Páginas 894 a 904 e 906 a 918 Padrões de Projeto ... •No caso de](https://reader034.vdocuments.com.br/reader034/viewer/2022050213/5f5fb48c32f16f4dc84c4c4d/html5/thumbnails/51.jpg)
PERGUNTAS?
![Page 52: PROGRAMAÇÃO SERVIDOR EM SISTEMAS WEB · 2011-09-15 · Biblioteca Virtual Java: Como Programar (6ª Edição) Páginas 894 a 904 e 906 a 918 Padrões de Projeto ... •No caso de](https://reader034.vdocuments.com.br/reader034/viewer/2022050213/5f5fb48c32f16f4dc84c4c4d/html5/thumbnails/52.jpg)
BOM DESCANSO A TODOS!