Hallo,
Ich habe ein Problem mit einer Datenbankabfrage, obwohl es wohl eigentlich viel mehr ein Problem der Schleife zur Befüllung der Liste mit den Datenbankergebnissen ist vermute ich.
hier mein Code:
Es geht hierbei um eine Tabelle mit 3 Spalten, diese 3 Spalten möchte ich in "liste" speichern und die einzelnen Zeilen der Tabelle dann sozusagen in "listemain". Vermutlich liegt das Problem bei "liste.clear()" ich hatte das zuvor ganz am ende der while-Schleife, erhielt dann jedoch eine index out of bounds exception beim ausführen. In dieser Anordnung jedoch erhalte ich in listemain 13 Einträge mit den Ergebnissen der letzten Spalte. Wo liegt mein Fehler?
Ich habe ein Problem mit einer Datenbankabfrage, obwohl es wohl eigentlich viel mehr ein Problem der Schleife zur Befüllung der Liste mit den Datenbankergebnissen ist vermute ich.
hier mein Code:
Java:
public static ArrayList<ArrayList<String>> getParg(String psid,String db){
ArrayList<ArrayList<String>> listemain = new ArrayList<ArrayList<String>>();
ArrayList<String> liste = new ArrayList<String>();
ResultSet rs = null;
PreparedStatement pstmt;
Connection con = datenbankZugriff.dbverbindung.getConnection(db);
try {
pstmt = con.prepareStatement("select argument.argname,argument.description,possibleargvalue.displayvalue " +
"from processstep,processstepargvalue,argument,toolrelease, possibleargvalue where " +
"processstepargvalue.argid = argument.argid and possibleargvalue.argid = argument.argid and " +
"processstepargvalue.value = possibleargvalue.value and processstep.psid = processstepargvalue.psid " +
"and argument.treleaseid = toolrelease.treleaseid and processstep.psid = ? ");
pstmt.setString(1, psid);
rs = pstmt.executeQuery();
while(rs.next()){
liste.clear();
liste.add(rs.getString(1));
liste.add(rs.getString(2));
liste.add(rs.getString(3));
listemain.add(liste);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return listemain;
}
Es geht hierbei um eine Tabelle mit 3 Spalten, diese 3 Spalten möchte ich in "liste" speichern und die einzelnen Zeilen der Tabelle dann sozusagen in "listemain". Vermutlich liegt das Problem bei "liste.clear()" ich hatte das zuvor ganz am ende der while-Schleife, erhielt dann jedoch eine index out of bounds exception beim ausführen. In dieser Anordnung jedoch erhalte ich in listemain 13 Einträge mit den Ergebnissen der letzten Spalte. Wo liegt mein Fehler?