[RESOLVIDO] Listar todos os cadastros na tabela

2 respostas Resolvido
programaçãojavamysql
J

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:

2 Respostas

R
Solucao aceita

troque isso:

if(rs.next()){

Por isso e veja o que acontece:

while(rs.next()){
J

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

Criado 24 de outubro de 2018
Ultima resposta 24 de out. de 2018
Respostas 2
Participantes 2