如何将ResultSet转换为DTO ArrayList

dar*_*495 1 java database arraylist resultset

我有一个数据库的ResultSet,每行包含6列.

对我来说,每一行都是一个对象,每列都是该对象的参数.

问题是,我正在尝试使用此代码:

while(rs.next() && i<25){
        aux.setIdVinilo(rs.getInt("id_vinilo"));
        aux.setTitulo(rs.getString("titulo"));
        aux.setAutor(rs.getString("autor"));
        aux.setGenero(rs.getString("genero"));
        aux.setFecha(rs.getInt("fecha"));
        aux.setDiscografica(rs.getString("discografica"));
        aux.setImagen(rs.getString("imagen"));

        historial.add(aux);
        i++;
    } 
Run Code Online (Sandbox Code Playgroud)

rs是ResultSet,history是ArrayList,aux是我的DTO,由显示的字段组成.

这个问题是它最终用相同的信息填充ArrayList 25次.所以我猜rs.next()在每次迭代后都不会向前移动一行.我该如何实现这一目标?

Spr*_*ner 7

问题是你一次又一次地设置同一个对象你需要在循环内创建一个新对象

while(rs.next() && i<25){                    
        DTO aux=new DTO();// create aux object here

        aux.setIdVinilo(rs.getInt("id_vinilo"));
        aux.setTitulo(rs.getString("titulo"));
        aux.setAutor(rs.getString("autor"));
        aux.setGenero(rs.getString("genero"));
        aux.setFecha(rs.getInt("fecha"));
        aux.setDiscografica(rs.getString("discografica"));
        aux.setImagen(rs.getString("imagen"));

        historial.add(aux);
        i++;
} 
Run Code Online (Sandbox Code Playgroud)