Problem:
Eine Ausnahme, „java.sql.SQLException: Operation nicht zulässig, nachdem ResultSet geschlossen wurde“, tritt beim Schließen einer Verbindung zu einer MySQL-Datenbank auf und weist auf ein Problem mit der ResultSet-Verarbeitung nach Verbindungsbeendigung hin.
Codeauszug:
<code class="java">public static ResultSet sqlquery(String query) { ResultSet rs = null; Connection connection = null; Statement st = null; try { // Establish connection and execute query } finally { // Attempt to close connection and ResultSet objects } return rs; }</code>
Erklärung:
JDBC ruft nicht alle Abfrageergebnisse sofort im ResultSet ab. Stattdessen stellt es ein Objekt bereit, das das Abrufen von Ergebnissen erleichtert. Dieses Objekt wird jedoch beim Schließen der Verbindung ungültig.
Lösung:
Um dieses Problem zu vermeiden, sollte der Code ein Objekt erstellen, um die Abfrageergebnisse zu speichern, bevor die Verbindung geschlossen wird . Dazu gehört die Verwendung eines RowMappers, um ResultSet-Zeilen Objekten zuzuordnen und eine Sammlung zu füllen, die als Ergebnis der Methode zurückgegeben wird.
Aufgelöster Code:
<code class="java">public static <T> List<T> sqlquery(String query, RowMapper<T> rowMapper) { Connection connection = null; Statement st = null; ResultSet rs = null; try { // Establish connection and execute query } finally { // Handle possible exceptions gracefully } while (rs.next()) { list.add(rowMapper.mapRow(rs)); } return list; }</code>
Zusätzliche Hinweise:
Das obige ist der detaillierte Inhalt vonWarum erhalte ich die Fehlermeldung „java.sql.SQLException: Vorgang nach dem Schließen von ResultSet nicht zulässig“, wenn ich meine MySQL-Verbindung in Java schließe?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!