Ver Mensaje Individual
  #1 (permalink)  
Antiguo 19/05/2016, 14:43
miguelepq12
 
Fecha de Ingreso: mayo-2016
Ubicación: Venezuela
Mensajes: 1
Antigüedad: 8 años, 10 meses
Puntos: 0
Exclamación Se repiten los valores de un arraylist

Bueno el problema es el siguiente; estoy haciendo un programa que tiene una base de datos y quiero hacer que regrese una consulta en una lista hecha con una clase de acceso (getter y setter)... pero al momento de ver la lista que me regresa la función me regresa la cantidad de consultas pero todas tienen la misma información de la ultima consulta.

Este es el codigo:

Código:
try{ 
        if (reporte=='g'){

            try {
            Statement st = cn.createStatement();
            ResultSet rs = st.executeQuery(aSQL);

            while (rs.next()) {
             int i=0;

              dtsGe.setCodigo(rs.getString("codigo"));
              dtsGe.setDescripcion(rs.getString("descripcion"));
              dtsGe.setCategoria(rs.getString("categoria"));

              dtsGe.setCod_interno(rs.getString("codigo_interno"));
              dtsGe.setNota(rs.getString("nota"));

              dtsGe.setLote(rs.getInt("lote"));
              dtsGe.setF_vencimiento(rs.getDate("f_vencimiento")); 
              dtsGe.setF_entrada(rs.getDate("f_entrada"));
              dtsGe.setProveedor(rs.getString("proveedor"));
              dtsGe.setDoc_entrada(rs.getString("doc_entrada"));
              dtsGe.setF_entrada(rs.getDate("f_docentrada"));
              dtsGe.setPrec_compra(rs.getDouble("prec_compra"));

              dtsGe.setF_salida(rs.getDate("f_salida"));
              dtsGe.setCliente(rs.getString("cliente"));
              dtsGe.setDoc_salida(rs.getString("doc_salida"));
              dtsGe.setF_salida(rs.getDate("f_docsalida"));
              dtsGe.setPrec_venta(rs.getDouble("prec_venta"));

              dtsGe.setNom_envio(rs.getString("nom_envio"));
              dtsGe.setCod_guia(rs.getString("cod_guia"));
              dtsGe.setF_entrega(rs.getDate("f_entrega"));
              dtsGe.setF_aprobado(rs.getDate("f_aprobado"));
              dtsGe.setF_devolucion(rs.getDate("f_devolucion"));
              dtsGe.setF_garantia(rs.getDate("f_garantia"));
              dtsGe.setMotivo(rs.getString("motivo"));
              dtsGe.setNota2(rs.getString("nota2"));

              lista.add(i,dtsGe);
              System.out.println(lista.get(i).getCod_interno());
              i++;
            }

            System.out.println(lista.get(10).getCod_interno());
            return lista;

        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, e);
            return null;
        }
        }
En sí este es la parte interesante ya que el mismo problema se repite en métodos parecidos el primer Print me muestra todo los códigos únicos de los productos, ahí la lista está bien, pero en el segundo Print al querer ver el codigo de cualquier producto (en el ejemplo el 10) me sale solo el del ultimo...

No sé que estoy haciendo mal :C, agradezco su ayuda.