Java 使用rs.next()获取所有数组元素
我从数据库中获取数据时遇到问题。 我正在尝试获取数组的列表 但我的问题是,我只能得到数组的最后一个元素,可能是因为它覆盖了前一个元素 这是我的密码Java 使用rs.next()获取所有数组元素,java,sql,arrays,database,iterator,Java,Sql,Arrays,Database,Iterator,我从数据库中获取数据时遇到问题。 我正在尝试获取数组的列表 但我的问题是,我只能得到数组的最后一个元素,可能是因为它覆盖了前一个元素 这是我的密码 String sql; sql = "select * from NM_PROPERTIES_LOADER"; ResultSet rs = stmt.executeQuery(sql); String prop_n
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);
在我的sysout中,我可以检索所有数据。但在我的页面上,只检索最后一个元素。这是我的刀课
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;
}
}
在循环的每次迭代中,您都会覆盖
阅读器的内容。
您希望在循环内部而不是外部创建读卡器
,
并且在循环内部而不是外部执行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);
}
我已经试过了。它显示了数组的长度。就我而言,是36排。但显示的所有行只是我的最后一个元素。我的最后一个元素是“password”,所以我有36行“password”。我不知道如何使用propertydatareader=newpropertydata()代码>在循环内部。如果真是这样的话,那么其他地方还有另一个问题。。忘记放置PropertyData读取器=新建PropertyData();在循环内部。我的错。现在它开始工作了。谢谢你,伙计!