Heim >Datenbank >MySQL-Tutorial >Wie löse ich die MySQL-Ausnahme „Vorgang nicht zulässig, nachdem ResultSet geschlossen' in Java JDBC?

Wie löse ich die MySQL-Ausnahme „Vorgang nicht zulässig, nachdem ResultSet geschlossen' in Java JDBC?

DDD
DDDOriginal
2024-11-26 13:29:14920Durchsuche

How to Resolve the

MySQL-Ausnahme: „Vorgang nicht zulässig, nachdem ResultSet geschlossen wurde“ in Java JDBC

Bei der Arbeit mit Datenbanken ist es wichtig, den Status von zu verstehen Datenobjekte, um Fehler zu vermeiden. Eine häufige Ausnahme in JDBC ist der Fehler „Vorgang nicht zulässig, nachdem ResultSet geschlossen wurde“. Lassen Sie uns die Ursache und Lösung für dieses Problem untersuchen.

Ursache:

In JDBC stellt ein ResultSet die Ergebnismenge einer Datenbankabfrage dar. Sobald Sie eine Abfrage ausführen und ein ResultSet erhalten, müssen Sie es durchlaufen und es explizit schließen, um Systemressourcen freizugeben. Wenn Sie versuchen, Vorgänge für ein geschlossenes ResultSet auszuführen, wird die Ausnahme „Vorgang nach dem Schließen des ResultSet nicht zulässig“ angezeigt.

Lösung:

Im bereitgestellten Code auftritt, tritt der Fehler in der MySQLDonation-Klasse auf, während das ResultSet durchlaufen wird, das von der Abfrage zurückgegeben wird, die Spendendatensätze abruft. Das Problem tritt insbesondere auf, weil dasselbe Statement-Objekt sowohl zum Ausführen der Select-Abfrage als auch zum Ausführen der nachfolgenden Löschabfrage verwendet wird.

Empfohlener Ansatz:

Um dieses Problem zu beheben Um dieses Problem zu lösen, erstellen Sie jedes Mal, wenn Sie eine Abfrage ausführen, ein neues Statement-Objekt, anstatt dieselbe Anweisung wiederzuverwenden. Hier sind die Schritte zur Implementierung dieses Ansatzes:

  1. Entfernen Sie die Anweisung = Connection.createStatement(); Zeile aus der connect()-Methode in der MySQLDatabase-Klasse.
  2. Ersetzen Sie alle Instanzen der Anweisung in der MySQLDatabase-Klasse durch Connection.createStatement(). Alternativ können Sie die private Anweisungsvariable vollständig löschen.

Durch Befolgen dieser Schritte stellen Sie sicher, dass jede Operation an einem ResultSet mit einem neu erstellten Statement-Objekt ausgeführt wird, und verhindern so ein vorzeitiges Schließen des ResultSets. Dieser Ansatz ermöglicht es dem Code, Spendendatensätze korrekt zu verarbeiten und die Ausnahme „Vorgang nach dem Schließen von ResultSet nicht zulässig“ zu vermeiden.

Das obige ist der detaillierte Inhalt vonWie löse ich die MySQL-Ausnahme „Vorgang nicht zulässig, nachdem ResultSet geschlossen' in Java JDBC?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn