Buscar

03 - Padrões de Projeto DAO e MVC

Prévia do material em texto

Padrões de 
Projeto DAO e 
MVC
Persistência de Dados
● A maioria dos projetos de desenvolvimento de software utiliza:
○ Uma linguagem OO, tais como Java e C#. 
○ Um BD relacional para armazenar dados.
● O desenvolvimento de aplicações que usam linguagens OO e DB 
Relacional enfrentam o problema da incompatibilidade conceitual 
(impedance mismatch).
● Para superar este problema é importante conhecer: O processo de 
mapeamento objeto-relacional.
● Como implementar mapeamento objeto-relacional. 
O problema
 Código de acesso e persistência de dados no próprio formulário e de forma geral com trechos de 
código espalhado pela interface da aplicação para fazer o acesso aos dados.
O MVC - Model View Controller
Modelo de programac ̧ão que preve ̂ a divisão do programa 
em 3 partes bem definidas e distintas: interface, regras de 
negócio e banco dos dados. 
O Model View Controller
● Essa Camada é responsável pela Lógica (ou regra do negócio), essa 
camada é o software em si. 
● A camada model representa e manipula seguindo as regras do 
negócio.
● O modelo encapsula o estado e comportamento da aplicação além 
de ser o único componente do MVC que faz interface da aplicação 
frente à fonte de dados, que normalmente é representada pelo 
banco de dados da aplicação.
● Necessidade de mapeamento Objeto-Relacional
O Model View Controller
● Responsável pela apresentação;
● É a interface de representação do modelo, ou seja, trata-se da fronteira entre 
usuário e o sistema em si.
● No modelo tradicional do MVC, a view é composta por GUI’s (Graphical Users 
Interface) 
● No MVC web a visualização das informações acontece através das páginas 
HTML para informação estática e JSP, ASP, PHP, dentre outras, para 
informações dinâmicas. 
● É componente pode ser considerado o mais flexível do MVC,
○ podendo ser facilmente alterado ou substituído. 
○ Novas visões também podem ser facilmente implementadas, sem afetar 
em nada a estrutura do sistema.
O Model View Controller
● Controla a comunicação entre o modelo e a visão.
● sua finalidade é controlar interações que ocorram a partir do usuário (recebe o 
input) 
○ Trabalha sobre elementos na camada de visão e descobre o que essa 
entrada significará para o modelo. 
○ E do modelo em resposta às ações anteriores. 
● As entradas que esses componentes recebem são, normalmente, eventos de 
mouse, entradas de teclado, entre outras. 
○ Estes eventos por sua vez serão traduzidos em requisições de serviços 
para outro componente que deverá tratar.
O Data Object Access - DAO
● O padrão de projeto DAO surgiu com a necessidade de separarmos a lógica de negócios da lógica de 
persistência de dados. 
● Este padrão permite que possamos mudar a forma de persistência sem que isso influencie em nada na lógica 
de negócio, além de tornar nossas classes mais legíveis
Data Access Object - DAO
● Objetivo. Abstrair e encapsular todo o acesso a uma fonte de dados. O 
DAO gerencia a conexa ̃o com a fonte de dados para obter e armazenar os 
dados. 
● Este padrão permite criar as classes de dados independentemente da 
fonte de dados ser um BD relacional.
● Para isso, encapsula os mecanismos de acesso a dados e cria uma 
interface de cliente genérica para acessar os dados.
● Dessa forma, o DAO permite que os mecanismos de acesso a dados 
mudem independentemente do código que usa o dado. 
Data Access Object - DAO
● Dentro do DAO sa ̃o realizadas as querys 
● A intenção real de existência dos DAOs e ́ que eles na ̃o possuam 
nenhuma lo ́gica de nego ́cio, apesar de algumas vezes ser necessa ́rio 
encaplusar algo dentro deles, especialmente quando outros patterns da 
camada de modelo na ̃o esta ̃o presentes.
Data Access Object - DAO
● A classe DataAccessObject encapsula o acesso aos dados; contém os mapeamentos;
● A classe DataSource é a origem dos dados: BD, XML, etc.;
● A classe BusinessObject contém a lógica de negócio e usa o objeto DataAccessObject;
● Representa o objeto de domínio: Cliente,Produto,etc; 
● Contém os dados que transitam de/para a fonte de dados;
Exemplo DAO
Exemplo DAO
1. Iniciar o serviço de BD e criar a Tabela USUARIO
CREATE TABLE usuario (
id BIGINT,
nome VARCHAR(255),
cpf VARCHAR(255),
email VARCHAR(255),
telefone VARCHAR(255),
PRIMARY KEY (id)
);
Exemplo DAO
2. Criar um projeto do tipo Aplicaçao JAVA.
3. Nas propriedades do projeto, incluir nas bibliotecas o driver do banco. 
Exemplo DAO
4. Criar a classe de conexao: ConnectionFactory.java
Exemplo DAO
5. Criar a Classe do modelo USUARIO.java 
Exemplo DAO
6. Criar um pacote dao;
7. Criar a classe UsuarioDao.java responsavel pela persistencia de dados.
Exemplo DAO
8. Criar o Formulário para entrada de Dados UsuarioGui (gui > Novo > Formulario > 
JFrame > )
Exemplo DAO
9. Colocar os componentes do Formulário.
Exemplo DAO
10. Código do Botão sair: 
 System.exit(0); 
 
11. Código do botão limpar:
 jTextField1.setText("");
 jTextField2.setText("");
 jTextField3.setText("");
 jTextField4.setText("");
 jTextField5.setText(""); 
Exemplo DAO
12. O botão cadastrar

Continue navegando