gpt4 book ai didi

java - 使用 rs.next() 获取所有数组元素

转载 作者:搜寻专家 更新时间:2023-10-30 20:36:35 25 4
gpt4 key购买 nike

我在从数据库中获取数据时遇到问题。我正在尝试获取数组列表。

但我的问题是我只能获取数组的最后一个元素,这可能是因为它覆盖了前一个元素。

这是我的代码。

                 String sql;
sql = "select * from NM_PROPERTIES_LOADER";
ResultSet rs = stmt.executeQuery(sql);
String prop_name = null;
String prop_value = null;
PropertyData reader = new PropertyData();

while(rs.next()){
prop_name = rs.getString("prop_name");
prop_value = rs.getString("prop_value");
reader.setPropName(prop_name);
reader.setPropValue(prop_value);
..//other setter..


System.out.println(prop_name + " " + prop_value);
}
prop.add(reader);

在我的系统输出中,我可以检索所有数据。但在我的页面上只检索到最后一个元素。这是我的 Dao 类。

public class PropertyData {

private int id;
private String propName;
private String propValue;
private String engineName;
private String desc;
private Date createdAt;
private String createdBy;
private Date updatedAt;
private String updatedBy;



public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getPropName() {
return propName;
}
public void setPropName(String propName) {
this.propName = propName;
}
public String getPropValue() {
return propValue;
}
public void setPropValue(String propValue) {
this.propValue = propValue;
}
public String getEngineName() {
return engineName;
}
public void setEngineName(String engineName) {
this.engineName = engineName;
}
public String getDesc() {
return desc;
}
public void setDesc(String desc) {
this.desc = desc;
}
public Date getCreatedAt() {
return createdAt;
}
public void setCreatedAt(Date createdAt) {
this.createdAt = createdAt;
}
public String getCreatedBy() {
return createdBy;
}
public void setCreatedBy(String createdBy) {
this.createdBy = createdBy;
}
public Date getUpdatedAt() {
return updatedAt;
}
public void setUpdatedAt(Date updatedAt) {
this.updatedAt = updatedAt;
}
public String getUpdatedBy() {
return updatedBy;
}
public void setUpdatedBy(String updatedBy) {
this.updatedBy = updatedBy;
}

}

最佳答案

在循环的每次迭代中,您都会覆盖reader 的内容。你想在循环内创建 reader,而不是在循环外,并在循环内执行 prop.add(reader),而不是在循环外。

像这样:

 String sql = "select * from NM_PROPERTIES_LOADER";
ResultSet rs = stmt.executeQuery(sql);

while(rs.next()) {
PropertyData reader = new PropertyData();
String name = rs.getString("prop_name");
String value = rs.getString("prop_value");
reader.setPropName(name);
reader.setPropValue(value);

// other setter calls..

prop.add(reader);
}

关于java - 使用 rs.next() 获取所有数组元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37064828/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com