Baixe o app para aproveitar ainda mais
Prévia do material em texto
Persistência de dados e padrão DAO Padrões de Projeto Orientado a Objetos Profa. Danielle Martin Universidade de Mogi das Cruzes Persistência de dados Persistência de dados é o armazenamento não-volátil de dados de uma aplicação, por exemplo, em um banco de dados relacional. As variáveis e objetos armazenados na memória em tempo de execução são desalocados após a aplicação ser encerrada. Para guardar essas informacoes para uso posterior, deve-se persistir os dados. Aplicação objetos Banco de dados A maneira mais tradicional de uma aplicação persistir seus dados em um banco de dados relacional é criando código que irá executar instruções SQL no banco de dados. Ex: Persistência em bancos de dados relacionais Persistência em bancos de dados relacionais Para realizar essa tarefa, o código irá precisar acessar alguns componentes. São eles: Driver de conexão JDBC É um jar com classes que irão acessar a um banco de dados (SGBD) específico. Cada fabricante de SGBD (MySql, PostgreSQL, DB2, Oracle, SQLServer) cria e disponibiliza seus próprios drivers de conexão. Objeto Connection com a conexão do banco Antes de fazer qualquer operação no BD, precisamos criar um objeto Connection que irá abrir a conexão do nosso código com o banco de dados. Objeto Statement ou PreparedStatement para criar comandos SQL Cada instrução SQL que será executada deve ser criada como um objeto Statement ou PreparedStatement. 1. Inserindo o Driver no projeto 2. Abrindo a conexão Classe do Driver IP do servidor do banco Porta Nome do banco de dados Usuario Senha 3. Executando um comando SQL INSERT Valores a serem populados dinamicamente Substituindo o primeiro valor “?” pelo login do usuario Substituindo o segundo valor “?” pela senha do usuario 3. Executando um comando SQL UPDATE DELETE 3. Executando um comando SQL SELECT Preenche a instrução com valor dinâmico Recupera os valores retornados usando os nomes das colunas 4. Fechando a conexão Recomendado fechar a conexao sempre apos o uso Exemplo: Exercicio Crie um banco de dados PostgreSQL com a tabela produtos modelada abaixo. Implemente uma aplicacao para persistir dados de objetos Produto conforme o exemplo do slide anterior. Implemente tambem os metodos atualizar e excluir. Classe de Conexao Problema No exemplo observado anteriormente, se precisarmos alterar a senha de acesso o banco de dados, quantas linhas de código serão impactadas? E se o SGBD for migrado para outro servidor com endereço diferente? Resposta: Cada método de acesso ao banco de dados será atualizado uma vez. Solução Podemos encapsular a abertura de conexão em uma classe com esse único propósito. Se houver alteração nos dados de conexão, apenas essa classe será atualizada uma única vez. Classe de Conexão Classe de Conexão Padrão Data Access Object (DAO) Problema Na classe Produto modelada abaixo, os métodos cadastrar() e consultarTodos() contém instruções SQL misturadas com atributos e regras de negócio. Se houver uma manutenção no banco de dados, alteração do SGBD, mudança na modelagem de dados, todas as classes de negócio serão impactadas. Solução O padrão Data Access Object (DAO) prevê a separação da responsabilidade de persistência ao Banco de Dados em uma camada exclusiva da aplicação. Os métodos de acesso ao banco de dados são encapsulados em uma classe DAO. Ex: Classe ProdutoDAO Aplicação
Compartilhar