Problema com resultset

4 respostas Resolvido
jdbcjava
igoralves

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;
}

4 Respostas

darlan_machado
Solucao aceita

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.

igoralves

Entendo, fiz oque me sugeriu mas o problema persistiu

darlan_machado

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

igoralves

Já localizei o problema , estava informando o Index incorreto

Criado 18 de abril de 2019
Ultima resposta 18 de abr. de 2019
Respostas 4
Participantes 2