Hallo,
ich habe folgendes Problem: Ich möchte per Abfrage alle dazu passenden Datensätze auslesen und in ein Nutzer-Array ("Nutzer" ist ein eigener Datentyp mit verschiedenen Attributen, bspw. Name, Vorname, Geb.Dat etc.) speichern.
Nun bekomme ich aber leider alle Daten nur 3-fach ausgelesen, habe mir sogar einen Counter gesetzt, der auch das 3-fache an Ausgaben zählt, wie eigentlich nur möglich sind (Nutzer-Array ist auf 50 Einträge beschränkt).
Zudem wird immer nur ein Nutzer mehrmals ausgegeben, obwohl mehrere Nutzer auf meine Testabfrage passen müssten.
Anbei mein Code, vielleicht sieht ja jemand den Fehler:
ich habe folgendes Problem: Ich möchte per Abfrage alle dazu passenden Datensätze auslesen und in ein Nutzer-Array ("Nutzer" ist ein eigener Datentyp mit verschiedenen Attributen, bspw. Name, Vorname, Geb.Dat etc.) speichern.
Nun bekomme ich aber leider alle Daten nur 3-fach ausgelesen, habe mir sogar einen Counter gesetzt, der auch das 3-fache an Ausgaben zählt, wie eigentlich nur möglich sind (Nutzer-Array ist auf 50 Einträge beschränkt).
Zudem wird immer nur ein Nutzer mehrmals ausgegeben, obwohl mehrere Nutzer auf meine Testabfrage passen müssten.
Anbei mein Code, vielleicht sieht ja jemand den Fehler:
Java:
public Suchanfrage suchen(Suchanfrage s){
try{
con.setReadOnly(true);
stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM nutzer WHERE ichWillLernen LIKE UPPER('"+s.getParameterIchKann()+
"') AND ichSpreche LIKE UPPER('"+s.getParameterIchLerne()+"') ");
int countResults = 0;
while(rs.next())
{
for(int i = 0;i < s.getSuchergebnisse().length; i++)
{
String datum = rs.getString(5);
String[] zahlenString = datum.split("\\.");
int tag=Integer.parseInt(zahlenString[0]);
int monat=Integer.parseInt(zahlenString[1]);
int jahr=Integer.parseInt(zahlenString[2]);
Nutzer n = new Nutzer(rs.getString(1),rs.getString(2),rs.getString(3),rs.getString(4),
new Datum(tag,monat,jahr),rs.getString(6), rs.getString(7),rs.getString(8),
rs.getString(9).split(","),rs.getString(10),null,null,null);
s.getSuchergebnisse()[i] = n;
countResults ++;
}
}
rs.close();
stmt.close();
con.close();
System.out.println(countResults);
//System.out.println(s);
for(int j = 0; j<s.getSuchergebnisse().length; j++)
{
System.out.println(s.getSuchergebnisse()[j]);
}
return s;
}catch(Exception e){
System.out.println("****Fehlermeldung**** ->"+e);
return null;
}
Zuletzt bearbeitet von einem Moderator: