Problemas ao usar o iterador do ResultSet .next()

2 respostas
Cornelius

Bom dia à todos,

Estou com um pequeno problema ao utilizar os valores coletados pelo ResultSet. fiz um método que joga esses valores em um ArraList de String[], veja:

ArrayList<String[]> receberValores()throws Exception{
        conectar();
        rt = stm.executeQuery("select * from usuario");
        String[] coluna = new String[4];
        ArrayList<String[]>lista = new ArrayList<String[]>();
        while(rt.next()){ //desconfio que seja aqui o problema!
            coluna[0] = rt.getString("nome");
            coluna[1] = rt.getString("setor");
            coluna[2] = rt.getString("sexo");
            coluna[3] = rt.getString("local");
            lista.add(coluna);
        }
        desconectar();
        return lista;
    }

O problema, é que ele joga duas vezes a ultima linha coletada do banco de dados (o tanto de linhas coletadas pelo select = 2).

Agradeço a atenção.

Leopoldo Santiago

2 Respostas

robertoMoraes
ArrayList<String[]> receberValores()throws Exception{  
    conectar();  
    rt = stm.executeQuery("select * from usuario");  
    String[] coluna = new String[4];  // seu problema esta aki!
    ArrayList<String[]>lista = new ArrayList<String[]>();  
    while(rt.next()){ 
        coluna[0] = rt.getString("nome");  
        coluna[1] = rt.getString("setor");  
        coluna[2] = rt.getString("sexo");  
        coluna[3] = rt.getString("local");  
        lista.add(coluna);  
    }  
    desconectar();  
    return lista;  
}

e so colocar array dentro do loop

ArrayList<String[]> receberValores()throws Exception{  
    conectar();  
    rt = stm.executeQuery("select * from usuario");  
     
    ArrayList<String[]>lista = new ArrayList<String[]>();  
    while(rt.next()){ 
        String[] coluna = new String[4]; // aki
        coluna[0] = rt.getString("nome");  
        coluna[1] = rt.getString("setor");  
        coluna[2] = rt.getString("sexo");  
        coluna[3] = rt.getString("local");  
        lista.add(coluna);  
    }  
    desconectar();  
    return lista;  
}

:lol:

Cornelius

bom, não pensei que faria diferença… mas blz, muito obrigado! Funfou aqui!

Criado 5 de abril de 2011
Ultima resposta 5 de abr. de 2011
Respostas 2
Participantes 2