Não está a aparecer todos os valor do registo da Base de Dados

Estou a trazer registos da base de dados e mostrar numa label mas não está a aparecer todos os registos só aparece o último.
Revi e revi o código principalmente o while mas penso que está direito.


String sql="select * from prr.mesa";
ResultSet rs=stmt.executeQuery(sql);
            
while (rs.next()){
   lbA.setText(rs.getString("Cod_Mesa"));
}    

Não está o código todo escrito só está a parte do stmt e do while.

Para cada objeto retornado na consulta, você deve fazer um new dentro do laço de repetição!

Segue exemplo abaixo:

String sql = "select * from cadCor";
ModeloCor modcor;
ResultSet rs=stmt.executeQuery(sql);

            while (rs.next()){
                modcor = new ModeloCor();
                modcor.setCodigo(rs.getInt("id_cor"));
            }

Não verdade você estava apenas substituindo o valor e não acumulando…

StringBuilder sb = new StringBuilder();

while (rs.next()){
    sb.append(rs.getString("Cod_Mesa")); //acumula codigo de cada registro
    sb.append("\n"); //pula linha no label...
}

lbA.setText(sb.toString()); //mostra codigos acumulados de uma vez

Se você não quiser pular linha como mostrei usando \n, pode escolher outro caractere como vírgula ou espaço, etc…

Muito obrigado pela ajuda :slight_smile:

1 curtida

Só não estou é a pular de linha a partir do

sb.append("\n");

como disse.