在我的例子中,我使用 PreparedStatement
从我的数据库中选择记录:
选择的行数正确,但只显示最后一行。
我的代码:
while (rs.next()) {
DetailCaisse detailCaisse = new DetailCaisse();
devise.setLibSiglDev(rs.getString("LIB_DEV_DEV"));
devise.setLibSiglDev(rs.getString("LIB_SIGL_DEV"));
devise.setCodDevDev(rs.getInt("cod_Dev_dev"));
detailCaisse.setDevise(devise);
deviseDispo.add(detailCaisse);
}
我应该使用什么来代替 while(rs.next())
来更正问题?
最佳答案
您对 while(rs.next())
的使用没有任何问题。问题是您不断用新值覆盖相同的 devise
实例,从而丢失旧值。相反,您应该在每次迭代时创建一个新实例:
while (rs.next()) {
DetailCaisse detailCaisse = new DetailCaisse();
Devise devise = new Devise(); // Here!
devise.setLibSiglDev(rs.getString("LIB_DEV_DEV"));
devise.setLibSiglDev(rs.getString("LIB_SIGL_DEV"));
devise.setCodDevDev(rs.getInt("cod_Dev_dev"));
detailCaisse.setDevise(devise);
deviseDispo.add(detailCaisse);
}
关于java - while(rs.next()) 不返回所有记录,只返回最后一条,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37384148/