Ich habe als Klassenvariable das definiert:
In einer Funktion werden Mitspieler aus einer DB ausgelesen und in einer Schleife der Liste hinzugefügt. Wenn ich am Ende der Funktion (außerhalb der Schleife) abfrage, wieviele Elemente die Liste hat, erhalte ich entweder 1 oder 0, egal, wieviele Mitspieler aus der DB geholt wurden.
Ich habe das gefühl, dass die Schleife jedes Mal mit den neuen Einträgen überschrieben wird, sodass da nicht z.B. 3 Mitspieler sind, sondern nur 1.
Die Ausgabe ist immer:
Weiß jemand, wo der Fehler liegt?
Java:
List spielerListe = new ArrayList();
In einer Funktion werden Mitspieler aus einer DB ausgelesen und in einer Schleife der Liste hinzugefügt. Wenn ich am Ende der Funktion (außerhalb der Schleife) abfrage, wieviele Elemente die Liste hat, erhalte ich entweder 1 oder 0, egal, wieviele Mitspieler aus der DB geholt wurden.
Ich habe das gefühl, dass die Schleife jedes Mal mit den neuen Einträgen überschrieben wird, sodass da nicht z.B. 3 Mitspieler sind, sondern nur 1.
Java:
// Ausschnitt aus der View, wo die Funktion in der DB aufgerufen wird:
String meldung = db.auslesen(anzahlSpieler, tfName[i].getText(), String.valueOf(tfPasswort[i].getPassword()));
// Ausschnitt aus der Klasse DB:
public String auslesen(int anzahlSpieler, String user, String pass) {
try {
stmt = conn.createStatement();
rs = stmt.executeQuery("SELECT * FROM SPIELER where username='" + user + "' AND password='" + pass + "'");
meldung = " - Bitte überprüfen Sie Ihre Benutzerangaben.";
while (rs.next()) {
meldung = "";
spielerListe.add(user);
System.out.println("hinzugefügt");
}
rs.close();
stmt.close();
} catch (SQLException ex) {
System.out.println("fehler beim auslesen");
}
System.out.println("anzahl " + this.spielerListe.size());
return meldung;
}
Die Ausgabe ist immer:
hinzugefügt
anzahl 1
hinzugefügt
anzahl 1
Weiß jemand, wo der Fehler liegt?