Baixe o app para aproveitar ainda mais
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
Compartilhar