Olá pessoas. Conversaremos hoje sobre o o Data Access Object (DAO). Como estou falando da parte negocial do sistema, veremos uma classe que terá o acesso ao banco de dados para realizar as operações de busca, inserção, etc.
Como a nossa proposta é separar em camadas a nossa aplicação, construiremos um "módulo" que fará a persistência com o banco de dados. Teremos uma classe que fará o transporte do banco e outra mais específica que executará as funções.
Cada "Entidade" (classe) que necessita fazer transações com o banco de dados terá uma classe DAO associada a ele. No caso, irei fazer a classe para a nossa entidade Cliente, que vimos no artigo passado.
A classe conterá somente métodos que realizarão funções com o objeto. Construiremos 5 métodos: incluir, recuperarTodos, recuperarPorId, alterar e excluir.
Procedimento: Na pasta "cliente" criaremos o arquivo ClienteDAO.class.php
ClienteDAO.class.php
require_once("../../../arquitetura/DAO.class.php"); class ClienteDAO extends DAO { public function inserir(Cliente $cliente) { $banco = $this->getBancoDados(); if(!$banco->updateSQL($sql)) { public function recuperarPorId($id) { $banco = $this->getBancoDados(); $cliente = NULL; $retorno = $banco->executaSQL($sql); public function recuperarTodos() { $banco = $this->getBancoDados(); $retorno = $banco->executaSQL($sql); /* Para os métodos de alterar e excluir, segue o mesmo procedimento, podendo também ser feitos métodos para realizar funções, ex.: Recuperarpordata, etc. */ } public $banco; public function setBancoDados(BancodeDados $banco) { $this->banco = $banco; } public function getBancoDados() { return $this->banco; } } |
O método inserirCliente recebe como parâmetro o objeto cliente e constrói a query com os dados do cliente. A classe estende a classe DAO (requerida da pasta arquitetura) que tem os métodos setBancoDados e getBancoDados.
Estes dois métodos são chamados quando instanciamos o ClienteDAO e passo o objeto BancodeDados já conectado (passado por referência). A classe usa esse objeto banco para realizar as operações.
Espero ter ajudado a entender o objeto DAO. No próximo artigo, veremos como funciona a SESSION FACADE (lê-se façeide), que é onde estão as regras de negócio do nosso sistema.
Script do Banco de Dados:
| USE TEST; CREATE TABLE cliente ( id INT NOT NULL AUTO_INCREMENT, nome VARCHAR(255) NOT NULL, telefone VARCHAR(255) NOT NULL, endereco VARCHAR(255) NOT NULL, email VARCHAR(255) NOT NULL, PRIMARY KEY(id) ); |
Abraço!











10 Comentários
Qual a sua opinião?