Ich habe ein Problem beim Abrufen von Daten aus der Datenbank. Ich versuche, die Liste der Array zu holen.Abrufen aller Array-Elemente mit rs.next()
Aber mein Problem ist, dass ich nur das letzte Element des Arrays vielleicht erhalten kann, weil es das vorherige überschreibt.
Hier ist mein Code.
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);
In meinem System kann ich alle Daten abrufen. aber auf meiner Seite wird nur das letzte Element abgerufen. Hier ist meine Dao-Klasse.
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;
}
}
Ich habe bereits versucht diese. Es zeigte die Länge des Arrays an. in meinem Fall 36 Zeilen. aber alle angezeigten Zeilen sind nur mein letztes Element. Mein letztes Element ist "Passwort", also habe ich 36 Zeilen "Passwort". –
Ich sehe nicht, wie das mit 'PropertyData reader = new PropertyData();' innerhalb der Schleife möglich ist. Wenn das wirklich der Fall ist, gibt es anderswo ein anderes Problem. – janos
ohhh .. vergessen, den PropertyData reader = new PropertyData(); innerhalb der Schleife. mein Fehler. jetzt geht es. Danke Kumpel! –