Não entendi esta parte da classe ProdutoDAO qual o ponto a provar utilizando uma lista como o retorno do metodo? Poderia no proprio listar realizar o print?
public List<Produto> listar() throws SQLException {
List<Produto> produtos = new ArrayList<Produto>();
String sql = "SELECT ID, NOME, DESCRICAO FROM produto";
try(PreparedStatement pstm = connection.prepareStatement(sql)) {
pstm.execute();
try(ResultSet rst = pstm.getResultSet()) {
while(rst.next()) {
Produto produto = new Produto(rst.getInt(1), rst.getString(2), rst.getString(3));
produtos.add(produto);
}
}
}
return produtos;
}
Pra mim seria muito mais pratico pegar o codigo ja pronto da classe TestaListagem é mais simples e menos complexo ao meu ver:
public void listar() throws SQLException{
PreparedStatement stm = connection.prepareStatement("SELECT ID, NOME, DESCRICAO FROM produto");
stm.execute();
ResultSet rst = stm.getResultSet();
while (rst.next()) {
int id = rst.getInt("ID");
String nome = rst.getString("nome");
String descricao = rst.getString("descricao");
System.out.println(id + "- " + nome + " " + descricao);
}
}
Estou perdendo alguma coisa no caminho galera? Não entendi o real sentido deste primeiro codigo. Alguem pode me ajudar?