Ir para conteúdo

Arquivado

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

laudirbispo

Como implementar classe DAO que possui relações entre tabelas?

Recommended Posts

Cheguei em um ponto da minha aplicação em que preciso relacionar tabelas em uma única consulta.

 

Até o momento, uso uma classe DAO para cada tabela no banco de dados, com funções CRUD básicas.

Mas agora surgiu a necessidade de relacionar essas tabelas, qual é a camada que faz isso e como ela funciona? Procurei na net, há várias explicações, (e a busca aqui do Fórum está desagradável)

mas cada um diz uma coisa. Fiquei mais confuso ainda!

Estou tentando implementar o padrão MVC.

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • 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 Claudinei Teodoro
      Sou super novato estou começando a entender programação agora e estou com dificuldade em implementar o método UPDATE no meu DAO Generico.
      Os métodos INSERT, SELECT, DELETE já esta funcionando preciso somente de uma ajuda para o método UPDATE.

      Segue abaixo método INSERT que estou utilizando, alguém pode me ajudar com o método UPDATA utilizando como base este método INSERT.


      public void salvar(T objeto) throws SQLException, IllegalArgumentException, IllegalAccessException, ClassNotFoundException {


      Class classe = objeto.getClass();

      String parteInicialSQL = "INSERT INTO " + classe.getSimpleName().toLowerCase() + "(";

      Field[] atributos = classe.getDeclaredFields();
      String parteFinalSQL = ") VALUES(";

      for (Field atributo : atributos) {
      if (!"id".equals(atributo.getName())) {
      parteInicialSQL += atributo.getName().toLowerCase() + ",";
      parteFinalSQL += "?,";
      }
      }

      parteInicialSQL = parteInicialSQL.substring(0, parteInicialSQL.length() - 1);
      parteFinalSQL = parteFinalSQL.substring(0, parteFinalSQL.length() - 1) + ")";

      Class.forName("org.postgresql.Driver");
      Connection conexao = DriverManager.getConnection("jdbc:postgresql://127.0.0.1:5432/postgres", "postgres", "123456");
      PreparedStatement sql = conexao.prepareStatement(parteInicialSQL + parteFinalSQL);

      int numeroInterrogacao = 1;
      for (Field atributo : atributos) {
      if (!"id".equals(atributo.getName())) {
      atributo.setAccessible(true);
      sql.setObject(numeroInterrogacao++, atributo.get(objeto));
      }
      }

      System.out.println(parteInicialSQL + parteFinalSQL);

      sql.execute();
      conexao.close();

      }
    • Por aldoneto.89
      tenhos as 3 seguintes classes:
       
      <?php class Sql extends PDO{ private $conn; //conexão com o banco public function __constuct(){ $this->conn = new PDO("mysql:host=localhost;dbname=php7","root","root"); } private function setParams($statment, $parameters = array()){ foreach(parameters as $key => $value) { //associar os parametros ao comando.//chave e o valor $this->bindParam($key, $value); } } private function setParam($statment, $key, $value){ $statment->bindParam($key, $value); } public function query($rawQuery,$params = array()){ //1-parametro a ser tratato e 2 os dados $stmt = $this->$conn->prepare($rawQuery); // $this->setParams($stmt, $params); $stmt->execute(); return $stmt; } public function select ($rawQuery, $params = array()):array { $stmt = $this->query($rawQuery, $params); $stmt->fetchAll(PDO::FETCH_ASSOC); } } <?php spl_autoload_register(function($class_name){ $filename = $class_name.".php"; if(file_exists(($filename))){ require_once($filename); } }); ?> <?php require_once("config.php"); $sql = new Sql(); $usuarios = $sql->select("SELECT * FROM tb_usuarios"); echo json_encode($usuarios); ?> e esta dando o erro :
       
      Fatal error: Uncaught TypeError: PDO::__construct() expects at least 1 parameter, 0 given in C:\xampp\htdocs\DAO\index.php:5 Stack trace: #0 C:\xampp\htdocs\DAO\index.php(5): PDO->__construct() #1 {main} thrown in C:\xampp\htdocs\DAO\index.php on line 5
       
      o engrçado é que peguei em uma videoaula e esta igual ao do professor
       
      diz que tem q passar um parametro, mas no dele não tem parametro
    • Por laudirbispo
      Cheguei em um ponto da minha aplicação em que preciso relacionar tabelas em uma única consulta.
       
      Até o momento, uso uma classe DAO para cada tabela no banco de dados, com funções CRUD básicas.Mas agora surgiu a necessidade de relacionar essas tabelas, qual é a camada que faz isso e como ela funciona?
      Por exemplo: A Classe PermissionsDAO faz insert, update, delete, select na tabela permissions, mas essa classe agora precisa acessar as tabelas privileges, groups, user_groups, etc.
      Procurei na net, há várias explicações, (e a busca aqui do Fórum está desagradável)
      mas cada um diz uma coisa. Fiquei mais confuso ainda!
       
      Estou tentando implementar o padrão MVC.
    • Por laudirbispo
      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?
×

Informação importante

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