Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

laudirbispo

Dúvida sobre a classe DAO, é melhor passar o objeto de conexão com injeção de dependência ou instância-lo no construtor?

Recommended Posts

Estou começando e tenho algumas dúvidas, sobre como implementar isso.

Dúvida sobre a classe DAO, é melhor passar o objeto de conexão com injeção de dependência ou instância-lo no construtor?

 

Qual seria a melhor abordagem?

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por First
      Olá a todos!
       
      Eu estou criando um sistema do zero mas estou encontnrando algumas dificuldades e não estou sabendo resolver, então vim recorrer ajuda de vocês.
      Aqui está todo o meu código: https://github.com/PauloJagata/aprendizado/
       
      Eu fiz um sistema de rotas mas só mostra o conteúdo da '/' não sei porque, quando eu tento acessar o register nada muda.
      E eu também quero que se não estiver liberado na rota mostra o erro de 404, mas quando eu tento acessar um link inválido, nada acontece.
      Alguém pode me ajudar com isso? E se tiver algumas sugestão para melhoria do código também estou aceitando.
       
       
      Desde já, obrigado.
    • Por Jafreal
      Bom dia a todos
       
      Criei um programa em MVC, que utiliza duas tabelas customizadas. Tipo Pai e Filho. Similar as tabelas SC5 e SC6. Estou usando FWMBrowse, por isso utilizei a relação abaixo no Static Function ModelDef.
       
      Local oModel         := Nil
      Local oStPai         := FWFormStruct(1, 'SZD')
      Local oStFilho         := FWFormStruct(1, 'SZE')
      Local aSZERel        := {}
       
      oModel := MPFormModel():New('zMVCMd3M')
      oModel:AddFields('SZDMASTER',,oStPai)
      oModel:AddGrid('SZEDETAIL','SZDMASTER',oStFilho,,,,,)  
       
      aAdd(aSZERel, {'ZE_FILIAL' ,'ZD_FILIAL' } )
      aAdd(aSZERel, {'ZE_EDITAL' ,'ZD_EDITAL' } ) 
       
      oModel:SetRelation('SZEDETAIL', aSZERel, SZE->(IndexKey(1))) 
      oModel:GetModel('SZEDETAIL'):SetUniqueLine({"ZE_FILIAL","ZE_EDITAL","ZE_CODPROD"})     
      oModel:SetPrimaryKey({})
       
      Return oModel
       
      O problema é que na hora da gravação na tabela filho ele não grava o campo filial(ZE_FILIAL), mas grava o campo edital(ZE_EDITAL). Alguem já passou por isso?
       
    • Por aluizs100
      Olá.

      Estou tentando localizar um código para conectar um banco de dados access utilizando o Visual Studio 12, porém só encontrei a com conexão direta via programa e eu queria fazer esta conexão via código.

      alguém poderia me auxiliar em enviando esta rotina ou me indicando o local onde encontro.


      Obrigado.
    • Por Sapinn
      Pessoal estou com um dúvida terrivel não consigo checar os paramentros passados pela url ele sempre pagar anterior o que fazer? 
      Vejam o codigo:: 
        <?php     class Rota     {         private $controlador = 'Paginas';         private $metodo = 'index';         private $parametros = [];         public function __construct()         {             $url = $this->url() ? $this->url() : [0];             if (file_exists('../app/Controllers/' . ucwords($url[0] . 'php'))) {                 $this->controlador = ucwords($url[0]);                 unset($url[0]);             }             require_once '../app/Controllers/' . $this->controlador . '.php';             $this->controlador = new $this->controlador;             if (isset($url[1])) {                 if (method_exists($this->controlador, $url[1])) {                     $this->metodo = $url[1];                     unset($url[1]);                 }             }             $this->parametros = $url ? array_values($url) : [];             call_user_func_array([$this->controlador, $this->metodo], $this->parametros);             var_dump($this);         }         private function url()         {             $url = filter_input(INPUT_GET, 'url', FILTER_SANITIZE_URL);             if (isset($url)) {                 $url = trim(rtrim($url, '/'));                 $url = explode('/', $url);                 return $url;             }         }     } Minha class Paginas:
      <?php class Paginas{              public function sobre($id){             echo $id."<hr>";         }     } O debug está me retornando:
       
      paginas
      _________________________________________________________________________________________________________________________________________________________________________________________
      object(Rota)#1 (3) { ["controlador":"Rota":private]=> object(Paginas)#2 (0) { } ["metodo":"Rota":private]=> string(5) "sobre" ["parametros":"Rota":private]=> array(1) { [0]=> string(7) "paginas" } }

      url usada: http://localhost/minha_pagina/paginas/sobre

      Ele não deveria gerar um erro e pedir para que eu passasse mais um paramentro na url? Ao invés disso ele só me retorna o método paginas o que fazer?
    • Por acneto.frc
      Olá a todos! Estou modificando algumas funções que utilizam callback para utilizar asyn-await. Uso o padrão MVC. Meu problema é que chamo a função assíncrona na model ela é executada, não retorna erro mas não volta para o controller. Abaixo parte do código.
       
      arquivo routes.js
      const segurosRoutes = require('../controllers/segurosControllers.js');
      module.exports = (app) => {
      app.get('/estagio/movimentacoes/cadastroSeguros', segurosRoutes.segurosGetAll);
      }
      arquivo controllers.js
      const segurosController = require('../models/segurosModels.js');
      module.exports = { segurosGetAll, }
      function segurosGetAll(req, res){
      console.log("Entrando em Controllers Seguros: ")
      segurosController.getAll(function (err, result){
      if(err) {
      console.log("Erro: " + err) throw err;
      }else{ console.log("Resultado "+result)
      }
      })
      }
      arquivo models.js
      const client = require('../../config/conexao.js');
      const moment = require('moment');
      module.exports = {
      getAll,
      }
      async function getAll() {
      m_sql = 'select A.*, B.seg_razaosocial, B.seg_nomefantasia, C.alu_nome, D.usu_username from seguros A left join seguradora B on A.seg_codigo = B.seg_codigo left join usuarios D on A.usu_codigo = D.usu_codigo left join alunos C on A.alu_codigo = C.alu_codigo ';
      console.log("SQL em Seguros...."+m_sql)
      console.log("-----------------------")
      let retorno
      try{
      const retorno = await client.query(m_sql)
      console.log("Retornando da SQL: "+retorno)
      } catch(erro) {
      console.log(erro)
      retorno = erro
      }
      return retorno
      }
       
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.