MySQL Umgang mit ResultSet/Fremdschlüssel ausgeben

rowJoe

Mitglied
Hallo zusammen,

ich habe eine Lösung für mein problem bereits gefunden, bin damit jedoch absolut nicht zufrieden. Vielleicht wisst ihr weiter und könnt mir einen Hinweis geben:

Ich lese Daten aus einer externen Datei ein, verarbeite sie und möchte sie in verschiedenen Tabellen (MySQL abspeichern). Dazu benötige ich den Fremdschlüssel aus den Datensätzen der anderen Tabellen (klappt nicht mit Last_Insert_ID()!). Hierzu wähle ich die ID mit createStatement aus und lasse sie ausgeben. Dabei kann nur eine einzige Integer zurückgegeben werden.

Bisheriger Code:
Java:
long lastID = 0;
while(result.next())
   lastID = result.getLong(1);

Warum auch immer, möchte Java unbedingt diese while-Schleife haben, ansonsten erhalte ich immer eine Exception. Weiß jemand wie ich diesen Fremdschlüssel eleganter verarbeiten kann ODER wie ich auf die Schleife verzichten kann?

Ich wäre euch wirklich sehr dankbar.


Ganz herzlichen Dank bereits jetzt.
 
Die Schleife kannst du weglassen, nur den Aufruf von result.next(); nicht ..

Java:
    long lastID = result.next() ? result.getLong(1) : 0;

Vor dem ersten Aufruf von result.next() zeigt der "pointer" des ResultSets noch ins nichts. Mit Aufruf von result.next() springst du nun auf die erste Zeile und es wird <true> zurückgegeben. Beim nächsten Aufruf springt der Pointer auf die nächste Zeile und gibt <true> zurück usw ... bis es keine weitere Zeile mehr gibt, dann gibt result.next irgendwann <false> zurück.
Wichtig hierbei ist also, dass du aufjedenfall einmal result.next() aufrufen musst, um in die erste Zeile deines ResultSet zu springen.
 
Zuletzt bearbeitet:

Neue Themen


Zurück
Oben