Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用rs.next()获取所有数组元素_Java_Sql_Arrays_Database_Iterator - Fatal编程技术网

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();在循环内部。我的错。现在它开始工作了。谢谢你,伙计!