[RESOLVIDO] Listar todos os cadastros na tabela

Para começar, olá a todos!

sou iniciantes em java e em meus estudos me deparei com um certo problema a listar dados do db em uma tabela java.

meu codigo está assim:

Classe contato (id, nome, telefone, email);

ContatoDAO

package testandoclasses;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;

public class ContatoDAO {

private Connection con;
PreparedStatement stmt;
ResultSet rs;

public ContatoDAO(){
con = new FabricaDeConexoes().getConnection();
}

public ArrayList listarContatos() throws SQLException{
String sql = “select * from contato”;
stmt = con.prepareStatement(sql);
rs = stmt.executeQuery();

ArrayList<Contato> contatos = new ArrayList<Contato>();

if(rs.next()){
    Contato contato = new Contato();
    contato.setId(rs.getInt("id"));
    contato.setNome(rs.getString("nome"));
    contato.setTelefone(rs.getString("telefone"));
    contato.setEmail(rs.getString("email"));
    contatos.add(contato);
    
}
return contatos;

}
}

================================

e minha interface tem um metodo mostrarTabela
Construtor(
public ListarContatos() {
initComponents();
iniciarDB() ;
montarTabela();
}

private void iniciarDB() {
contatoDao = new ContatoDAO();
}

)

//omitidos

private ContatoDAO contatoDao;
private Contato contato;

private void montarTabela(){
try {
ArrayList contatos = contatoDao.listarContatos();
int linha = 0;
for(Contato contato : contatos){
int id = contato.getId();
String nome = contato.getNome();
String telefone = contato.getTelefone();
String email = contato.getEmail();

       tblContatos.getModel().setValueAt(id, linha, 0);
       tblContatos.getModel().setValueAt(nome, linha, 1);
       tblContatos.getModel().setValueAt(telefone, linha, 2);
       tblContatos.getModel().setValueAt(email, linha, 3);
       linha++;
    }          
    
} catch (SQLException ex) {
    Logger.getLogger(ListarContatos.class.getName()).log(Level.SEVERE, null, ex);
}

}
}


embora não esteja dando erro, só está mostrando o primeiro registro do banco de dados…:frowning:

troque isso:

if(rs.next()){

Por isso e veja o que acontece:

while(rs.next()){

Fui miope. Não vi tal erro. Usei if, no lugar while… funcionou aqui. Obrigadão pela ajuda!

1 curtida