2
データベースからデータを取得する際に問題があります。 配列のリストを取得しようとしています。rs.next()を使用してすべての配列要素を取得します
しかし、私の問題は、前のものを上書きする可能性があるため、配列の最後の要素しか取得できないことです。
ここに私のコードです。
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では、すべてのデータを取得できます。私のページでは最後の要素だけが取り出されます。ここに私の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;
}
}
私はすでにこれを試してみました。それは配列の長さを表示しました。私の場合は36行です。表示される行はすべて最後の要素です。私の最後の要素は "パスワード"なので、私は36行の "パスワード"を持っています。 –
ループの中で 'PropertyData reader = new PropertyData(); 'でそれがどうなるかわかりません。それが本当の場合、他にも別の問題があります。 – janos
ohhh .. PropertyDataリーダー=新しいPropertyData()を入れるのを忘れてしまった。ループ内。私の悪い。今それは働いている。ありがとう! –