Heim >Datenbank >MySQL-Tutorial >Warum löst mein Java-Code die Ausnahme „java.sql.SQLException: Vorgang nach dem Schließen von ResultSet nicht zulässig' aus?
Verstehen der Ausnahme „Vorgang nicht zulässig, nachdem ResultSet geschlossen“
Beim Ausführen von SQL-Anweisungen in Java ist es wichtig, ResultSet-Objekte ordnungsgemäß zu verwalten um Ausnahmen zu vermeiden. Eine häufig auftretende Ausnahme ist „java.sql.SQLException: Vorgang nicht zulässig, nachdem ResultSet geschlossen wurde.“
Diese Ausnahme tritt auf, wenn ein Vorgang (z. B. das Abrufen von Daten aus einem ResultSet) versucht wird, nachdem das ResultSet geschlossen wurde. Der von Ihnen bereitgestellte Codeausschnitt veranschaulicht dieses Problem.
Grundursache der Ausnahme
In Ihrem Code erstellen Sie ein Anweisungsobjekt und verwenden es, um zwei Abfragen auszuführen: eine um den Namen des Benutzers abzurufen, und eine andere, um IDs aus der Tabelle „Profile“ abzurufen. Anschließend versuchen Sie, ein PreparedStatement mit demselben Verbindungsobjekt zu erstellen und eine Update-Anweisung vorzubereiten.
Das Problem tritt auf, wenn Sie innerhalb der While-Schleife auf die Methode „getStuff()“ zugreifen und die Ergebnisse der „Profile“ durchlaufen. Tisch. Innerhalb dieser Methode:
Dies verstößt gegen die Anforderung, dass jeweils nur ein ResultSet pro Statement-Objekt geöffnet sein darf. Infolgedessen kollidiert das ResultSet der Methode „getStuff()“ mit dem im Hauptcode erstellten ResultSet-Objekt (rs2).
Lösung
Um dieses Problem zu beheben Ausnahme: Sie müssen die ResultSet-Objekte ordnungsgemäß verwalten:
Zusätzlich können Sie darüber nachdenken Erstellen eines neuen Statement-Objekts für die Methode „getStuff()“, um mögliche Konflikte mit dem im Hauptcode verwendeten Statement-Objekt zu vermeiden.
Das obige ist der detaillierte Inhalt vonWarum löst mein Java-Code die Ausnahme „java.sql.SQLException: Vorgang nach dem Schließen von ResultSet nicht zulässig' aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!