Problema com resultset

Boa tarde pessoal , estou com um bug

Estou executando um select onde ao debugar ele faz normalmente vai adicionando os dados na array list porem quando chega na ultima linha do select ele altera dos os valores da array list para o ultimo resultado do select , segue o codigo

public List listarCliente(String nome){
Cliente c = new Cliente();
List cliente = new ArrayList();
try {
Connection con = Conecta.getConexao();
String sql = “SELECT NOME”
+ " FROM TB_cliente";
PreparedStatement ps = con.prepareStatement(sql);
ResultSet rs = ps.executeQuery();
while(rs.next()) {
c.setNome(rs.getString(“NOME”));
cliente.add©;
}
rs.close();
ps.close();
con.close();

        return cliente;
    } catch (Exception ex) {
       
    }
    return null;
}

Teu problema está em declarar o objeto c da classe Cliente fora do laço. Cada vez que passa pela repetição, ele sobrepõe as referências anteriores, deixando todas iguais ao último registro lido.
Solução: instancie o objeto dentro do laço while.

1 curtida

Entendo, fiz oque me sugeriu mas o problema persistiu

O primeiro passo já corrigiu. Agora precisa investigar e ver o que a query retorna e, além disso, como está montando o jcombobox

1 curtida

Já localizei o problema , estava informando o Index incorreto