Ainda não tem acesso? Estude com a gente! Matricule-se
Ainda não tem acesso? Estude com a gente! Matricule-se

Solucionado (ver solução)

Duvida da List

Bom dia,

tenho uma duvida sobre vantagem de eu implementar a List no meu código, estou fazendo uma consulta de agentes no MySQL, ele me retorna as informações, teria necessidade de guardar isso em uma LISTA?

Segue o codigo:

package br.tonbras.dao;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import br.tonbras.agentes.Agentes;
import br.tonbras.banco.ConecctionMySql;

public class ListaAgentesDao {
    public static void main(String[] args) throws SQLException {

        Agentes agente = new Agentes();

        try(Connection con = ConecctionMySql.getConnection()){

            Statement smt = con.createStatement();

            ResultSet rs = smt.executeQuery(" select * from usuarios ");


            while(rs.next()){
                String id = rs.getString("ID");
                agente.setId(id);
                System.out.println(id);

                String Login = rs.getString("login");
                agente.setLogin(Login);
                System.out.println(Login);

                String senha = rs.getString("senha");
                agente.setSenha(senha);
                System.out.println(senha);
            }
        }
    }
}

outra duvida nao seria melhor criar uma classe de DAO e ter nela todos os meus métodos como insere atera consulta todos em uma só?

obrigado.

4 respostas

Oi Gabriel, tudo bem ?

Dá forma que você está fazendo, está sempre pegando o último registro, seria interessante você armazenar numa lista sim :


package br.tonbras.dao;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import br.tonbras.agentes.Agentes;
import br.tonbras.banco.ConecctionMySql;

public class ListaAgentesDao {
    public static void main(String[] args) throws SQLException {

    List<Agentes> agentes = new ArrayList<>();

        try(Connection con = ConecctionMySql.getConnection()){

            Statement smt = con.createStatement();

            ResultSet rs = smt.executeQuery(" select * from usuarios ");


            while(rs.next()){

                Agentes agente = new Agentes();
                String id = rs.getString("ID");
                agente.setId(id);
                System.out.println(id);

                String Login = rs.getString("login");
                agente.setLogin(Login);
                System.out.println(Login);

                String senha = rs.getString("senha");
                agente.setSenha(senha);
                System.out.println(senha);

                agentes.add(agente);
            }
        }
    }
}

Sobre sua dúvido pertinente ao DAO, é uma ótima prática armazenar seu código em responsabilidades, o DAO é o padrão que vai encapsular todas as chamadas de banco de um objeto numa classe.

Acredito que o curso deva ensinar isso a algum instante e por enquanto ele está te mostrando como utilizar o JDBC.

Abraços

Matheus tudo bem e com vc ?

entendi o porque do List, obrigado.

No final do vídeo é exatamente o que ele faz a respeito do DAO, cria um DAO de produtos e cria métodos aplicados a o objeto, acredito que não precise criar uma classe para fazer uma consulta de agentes ou outra para alteração de dados desses agentes.

Por que como voce mesmo disse sobre responsabilidade, criarei uma classe DAO de agentes e nela vai estar a responsabilidade de ações sobre esses agentes.

estou correto ?

solução

Exatamente isso!

valeu matheus