Methoden while liefert nur den ersten Datensatz

MarcAber

Mitglied
Hallo zusammen,
ich habe sowohl google als auch forensuche oder faq durchforstet. Leider keine Lösung für mein Problem gefunden. Ich hoffe ich habe nichts übersehen und erzeuge hier redundante Einträge. Wenn ja, sorry dafür.

ich habe eine Tabelle in einer mysql datenbank:
id;gruppe;team;punkte
Hier finden sich in beliebiger Reihenfolge Datensätze in der Form wie oben angezeigt. Jetzt versuche ich verzweifelt eine Platzierung zu generieren. Das bedeutet, ich benötige pro Gruppe die Platzierung anhand der Punkte.

Also suche ich mir im Step 1 die Gruppen heraus und lasse die Einträge nach gruppe gruppieren. bekomme also brav eine Liste der vorhandenen Gruppen, wobei durch den GROUP Parameter ja nur ein Eintrag pro Gruppe angezeigt wird. Also alles gut. Der Step funktioniert auch.
Hie rder Code zu Step 1
Code:
public void TestStep1(){
        try{
            String  sql =   "SELECT gruppe FROM TestTabelle GROUP BY gruppe";
                    pst =   conn.prepareStatement(sql);
                    rs  =   pst.executeQuery();
                    while(rs.next()){
                        TestStep2(rs.getString("gruppe"));
                    }
        }catch(Exception e){JOptionPane.showMessageDialog(null, e);}
}

Innerhalb der While Schleife springe ich in TestStep2, wobei ich den Parameter der Gruppe übergebe und die SQL Abfrage entsprechend vornehme:

Code:
public void TestStep2(String gruppe){
    try{
          String  platzierung =   "SELECT id,team,punkte FROM TestTabelle WHERE gruppe = '"+gruppe+"' ORDER BY punkte DESC";
                     pst         =   conn.prepareStatement(platzierung);
                     rs          =   pst.executeQuery();logger.info(pst);
                              int platz   =   1;
                                while(rs.next()){
                                    String  id      =   rs.getString("id");
                                    String  team    =   rs.getString("team");
                                    String  punkte  =   rs.getString("punkte");
                                logger.info("Füge ein: " + platz +" "+ gruppe + " " + team + " " + punkte);
                                platz++;
                    }
                        }catch(Exception e){JOptionPane.showMessageDialog(null, e);}
}

Dummerweise durchläuft mir der Step2 die Schleife, findet aber irgendwie nicht zurück in den Step1 um die Schleife in Step1 weiter abzuarbeiten.

Ausgabe der logger.info:
Code:
Füge ein: 1 A1 97 19
Füge ein: 2 A1 29 13
Füge ein: 3 A1 11 7 
Füge ein: 4 A1 8 7 
Füge ein: 5 A1 15 7 
Füge ein: 6 A1 14 7

Jetzt fehlen mir jedoch die Einträge für gruppe A2 oder B1 oder oder oder ... Also springt mir java nicht zurück zur Schleife in Step1. Warum?

Ich muss dazu sagen, dass es sich um fiktive Einträge handelt. Ja, mir ist klar, dass die Punktzahl 7 auf Platz 3 gleichzusetzen wäre mit der von Platz 6. zur Info: es gibt mehrere Kriterien, an denen die Punkte festgemacht werden. Diese habe ich hier der Einfachheit jedoch rausgenommen.

Ich wäre sehr dankbar für Informationen, die mir zur Lösung des Problems verhelfen.
 

Thallius

Top Contributor
Wie soll es auch wenn du pst und rs als instanzvariable benutzt und damit in step2 die werte in step1 überschreibst? Warum sind das keine lokalen Variablen?
 

MarcAber

Mitglied
ok. vielleicht hab ich da ein verstaendnisproblem...
ich habe das bislang so gelöst:

die verbindung setze ich in javaconnect.java
meine anderen klassen fange ich so an:

Code:
public class TestKlasse {
    private static Logger logger = Logger.getLogger( TestKlasse.class );
    Connection conn = null;
    ResultSet rs = null;
    PreparedStatement pst = null;

    public TestKlasse() throws IOException{
       conn=javaconnect.ConnecrDB();
}

und greife dann in den jeweiligen methoden folgendermassen zu:

Code:
            String sql  =   "blablasqlanweisung";
                pst=conn.prepareStatement(sql);
                pst.execute();

was könnte ich verbessern?
 

MarcAber

Mitglied
hm ... ok. ich werd da mal mit rumprobieren.
so ganz erschliesst sich mir nicht der sinn, die variablen jedes mal lokal zu deklarieren. ausser hier in der mehrfachen schleifen geschichte.
 

Meniskusschaden

Top Contributor
so ganz erschliesst sich mir nicht der sinn, die variablen jedes mal lokal zu deklarieren. ausser hier in der mehrfachen schleifen geschichte.
Man will keine Seiteneffekte haben. Ist eben blöd, wenn das Programm nicht mehr funktioniert, nur weil an einer ganz anderen Stelle, eine namensgleiche Variable benutzt wird.

Warum machst du es eigentlich überhaupt mit zwei Abfragen? Du hättest die Daten doch auch mit einem einzigen Query abfragen können.
 

MarcAber

Mitglied
da ist die platzierung ja pro gruppe festlege, muesste ich dann abfragen ob sich die gruppe aendert und daraufhin wieder den zaehler auf 1 setzen. hochzaehlen bringt auch nichts, da in einer gruppe 2 -x teams sein koennen. so wars leichter. fand ich zumindest.
 

Meniskusschaden

Top Contributor
Stimmt, so etwas müsstest du dann machen, würdest dafür aber den Code für die zusätzliche Abfrage sparen. Vor allem würden aber - je nach Datenkonstellation - deutlich weniger Abfragen ausgeführt werden. Angenommen die erste Abfrage liefert 100 Zeilen. Dann würdest du die zweite Abfrage 100 Mal durchführen. Insgesamt würdest du also 101 SQL-Befehle zur DB senden und 101 Ergebnismengen zurück erhalten. Die Latenzzeit für die Kommunikation würde also 202 mal anfallen. Nötig wären aber nur zwei Latenzzeiten (ein Befehl hin, eine Ergebnismenge zurück).
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M While-Schleife mit Wartezeit Java Basics - Anfänger-Themen 15
Ranger229 Endless loop in while Schleife Java Basics - Anfänger-Themen 3
M Datentypen While-Schleife eine Java Methode erstellen Java Basics - Anfänger-Themen 3
Ostkreuz While Schleife neustarten Java Basics - Anfänger-Themen 20
S Erste Schritte do-while Schleife Münzwurf Java Basics - Anfänger-Themen 1
S while Schleife Taschenrechner Java Basics - Anfänger-Themen 1
P Best Practice While loop schleife Java Basics - Anfänger-Themen 5
S Erste Schritte While Schleifen Java Basics - Anfänger-Themen 11
A Erste Schritte Aufgabe mit while Schleife Java Basics - Anfänger-Themen 11
R do while Schleife Verständnisfrage Java Basics - Anfänger-Themen 2
Say Fehlenden Code finden in einer while-Schleife? Java Basics - Anfänger-Themen 11
Say do-While Code Ausführung Java Basics - Anfänger-Themen 3
Say do-while Syntak Java Basics - Anfänger-Themen 3
A Return in While Schleife Java Basics - Anfänger-Themen 6
M Erste Schritte While Schleife / Ausgabe von buchstabe & ASCII Wert Java Basics - Anfänger-Themen 4
J do..while Schleife Java Basics - Anfänger-Themen 14
W Wiederkehrende Konsolen-Anzeige mit do-While?! Java Basics - Anfänger-Themen 33
X Enum Abfrage ohne if, for, while oder switch Java Basics - Anfänger-Themen 21
java-starter Erste Schritte Mit While Schleifen Programme schreiben Java Basics - Anfänger-Themen 4
berserkerdq2 Brauche ich while != -1, wenn ich immer einen BufferedReader verwende? Java Basics - Anfänger-Themen 8
B Zuweisungen und Methodenaufrufe in Bedingung der while Schleife? Java Basics - Anfänger-Themen 2
JavaBeginner22 Würfeln bis 6 while Schleife Java Basics - Anfänger-Themen 13
G while.next() Verständnisfrage Java Basics - Anfänger-Themen 16
L while Schleife mit 2 Bedingung endet nicht Java Basics - Anfänger-Themen 3
D Array mit while-schleife Java Basics - Anfänger-Themen 12
B do while Schleife Java Basics - Anfänger-Themen 3
R While-Loop der die Einträge eines Arrays in umgekehrter Reihenfolge anzeigt Java Basics - Anfänger-Themen 3
SergioCK Do while Schleife wiederholen Java Basics - Anfänger-Themen 14
Informatikf Methoden While Schleife Java Basics - Anfänger-Themen 3
M While Schleife? Java Basics - Anfänger-Themen 4
C Sind die while-Schleifen richtig in for-Schleifen ersetzt worden? Java Basics - Anfänger-Themen 8
Poppigescorn Quersumme Berechnen mit einer While Schleife Java Basics - Anfänger-Themen 13
Zwanglos Warum wird nur die erste Zeile im while Block ausgeführt? Java Basics - Anfänger-Themen 8
M Wie kann ich Werte die in einer While Schleife sind weiter genutzt werden? Java Basics - Anfänger-Themen 7
H Kann eine while-Schleife ein Programm blockieren? Java Basics - Anfänger-Themen 8
O Methode in while-Schleife aufrufen geht nur beim ersten Mal Java Basics - Anfänger-Themen 2
A Wie schaffe ich das eine while Schleife addiert danach subtrahirt? Java Basics - Anfänger-Themen 1
Aeon Erste Schritte Preise berechnen mit do-while Java Basics - Anfänger-Themen 9
J for /while Schleife Java Basics - Anfänger-Themen 5
A While Schleife - buubelsort methode Java Basics - Anfänger-Themen 2
J Wie kann ich hier eine While schleife einbauen? Java Basics - Anfänger-Themen 3
S While-Schleife geht in Endlosschleife über, warum? Java Basics - Anfänger-Themen 6
M While-Schleifen-Fehler Java Basics - Anfänger-Themen 4
S Do-While-Schleife Java Basics - Anfänger-Themen 2
S While Schleife Java Basics - Anfänger-Themen 4
S Do-While Schleife Java Basics - Anfänger-Themen 6
J Von While zu for Java Basics - Anfänger-Themen 42
G While/If Programm Java Basics - Anfänger-Themen 2
L String in Do-While-Schleife Abbruchkriterium Java Basics - Anfänger-Themen 1
CptK Methoden While-Schleife so lange ausführen, wie Methode etwas zurückgibt Java Basics - Anfänger-Themen 2
G Flussdiagramm-Do while Java Basics - Anfänger-Themen 4
G If / While Programm (Datei auslesen) Java Basics - Anfänger-Themen 6
B Verschachtelung von For-Schleife in While Schleife Java Basics - Anfänger-Themen 14
G while schleife Java Basics - Anfänger-Themen 11
G while schleife mit array Java Basics - Anfänger-Themen 12
L Scanner schließen in While-Schleife? Java Basics - Anfänger-Themen 2
I Do-While / Kalkulator / Bitte um Hilfe Java Basics - Anfänger-Themen 9
G While schleife Java Basics - Anfänger-Themen 2
mor16Euro Erste Schritte Wie nennt man eine While oder For schleife die nie Ausgeführt wird Java Basics - Anfänger-Themen 5
C Verständnisfrage bezüglich der Do-While Schleife Java Basics - Anfänger-Themen 9
B OOP While Schleife läuft Endlos durch externen aufruf Java Basics - Anfänger-Themen 2
N while Schleife wird nicht beendet, obwohl Sie hätte breaken sollen Java Basics - Anfänger-Themen 4
B mehrere Werte mit scanner und while schleife einlesen, max berechnen bzw addieren Java Basics - Anfänger-Themen 2
D While Schleife bei Bedarf durch Eingabe stoppen Java Basics - Anfänger-Themen 15
O Erste Schritte Zahlendreieck mit While Java Basics - Anfänger-Themen 2
D Break Sprungmarken Problem einer While True in While True Java Basics - Anfänger-Themen 6
A Erste Schritte while-Schleife Java Basics - Anfänger-Themen 38
W While-Loop unterbrechen Java Basics - Anfänger-Themen 4
X While Do schleife funtioniert nicht Java Basics - Anfänger-Themen 5
J 2 "while"-Anweisungen in einer do-Schleife? Java Basics - Anfänger-Themen 4
W while Schleife und Bedingung Java Basics - Anfänger-Themen 11
T While Schleife funktioniert nicht Java Basics - Anfänger-Themen 14
J Input/Output Strings aneinander reihen mit while schleife Java Basics - Anfänger-Themen 25
S Try-Catch in Verwendung einer while Schleife Java Basics - Anfänger-Themen 2
P a cannot be resolved bei einer do while Schleife Java Basics - Anfänger-Themen 1
J While Schleife Java Basics - Anfänger-Themen 19
S While-Schleifen Ausgabe als String? Java Basics - Anfänger-Themen 1
L Taschenrechner mit switch und while funktioniert noch nicht richtig Java Basics - Anfänger-Themen 22
Z Return in While-Schleife Java Basics - Anfänger-Themen 7
N Methode mit While-Schleife und If-Bedingung und Array-Initialisierung Java Basics - Anfänger-Themen 4
V Erste Schritte Habe Fragen zu der For und While Schleife als auch Inkrement und Dekrement Java Basics - Anfänger-Themen 4
helldunkel While Schleife trotz false Java Basics - Anfänger-Themen 4
E Threads Thread in While-Schleife nur einmal starten Java Basics - Anfänger-Themen 2
M Erste Schritte while boolean=false läuft nur bei true??? Java Basics - Anfänger-Themen 23
R While-Schleife macht nicht was sie soll Java Basics - Anfänger-Themen 24
b1ck while-Schleife Java Basics - Anfänger-Themen 10
b1ck Integer initialisieren bei do-while-Schleife Java Basics - Anfänger-Themen 11
kilopack15 DoWhile-Schleife als While-Schleife darstellen Java Basics - Anfänger-Themen 9
A While-Schleife funktioniert nicht! Java Basics - Anfänger-Themen 33
A Verständnisproblem Ausgabe Do-While-Schleife Java Basics - Anfänger-Themen 3
E Alphabet mit einer while Schleife ausgeben Java Basics - Anfänger-Themen 3
I Mehre While-Schleifen hintereinander Java Basics - Anfänger-Themen 13
T while schleife starten , beeneden und wieder Starten Java Basics - Anfänger-Themen 8
W Verständnis Probleme bei der while-Schleife und continue Java Basics - Anfänger-Themen 21
F Reached end while parsing Java Basics - Anfänger-Themen 6
B Passwort prüfen bis eindeutig - while Schleife? Java Basics - Anfänger-Themen 11
$ Multiplikations-Rechner mit while Schleife Java Basics - Anfänger-Themen 8
T Variablen Var aus While-Schleife abfragen -.-' Java Basics - Anfänger-Themen 9
snipesss Schlüsselworte While Schleife Java Basics - Anfänger-Themen 3
snipesss While Schleife Java Basics - Anfänger-Themen 6

Ähnliche Java Themen

Neue Themen


Oben