Heim > Datenbank > MySQL-Tutorial > Warum löst mein Java-JDBC-Code „Vorgang nicht zulässig, nachdem ResultSet geschlossen wurde' aus?

Warum löst mein Java-JDBC-Code „Vorgang nicht zulässig, nachdem ResultSet geschlossen wurde' aus?

Susan Sarandon
Freigeben: 2024-11-23 13:41:13
Original
390 Leute haben es durchsucht

Why Does My Java JDBC Code Throw

Ausnahme: „Vorgang nicht zulässig, nachdem ResultSet geschlossen wurde“

Sie stoßen auf eine Java JDBC MySQL-Ausnahme aufgrund des folgenden Codes:

Statement statement;

public void connect() {
    statement = connection.createStatement();
}
Nach dem Login kopieren

Erklärung des Fehlers:

Die Anweisungsinstanz wird von allen Datenbankoperationen gemeinsam genutzt. Wenn Sie eine SELECT-Abfrage ausführen, wird ein ResultSet-Objekt zurückgegeben. Sobald das ResultSet geschlossen ist (entweder explizit oder implizit), schlagen alle weiteren Vorgänge an der Anweisung mit der Ausnahme „Vorgang nicht zulässig, nachdem ResultSet geschlossen wurde“ fehl.

Lösung:

Um dieses Problem zu beheben, erstellen Sie für jeden Datenbankvorgang ein neues Statement-Objekt, wie zum Beispiel:

public ResultSet query(String query) throws SQLException {
    if (query.toLowerCase().startsWith("select")) {
        return connection.createStatement().executeQuery(query);
    } else {
        connection.createStatement().executeUpdate(query);
    }
    return null;
}
Nach dem Login kopieren

Dadurch wird sichergestellt, dass für jeden ein neues Statement verwendet wird Abfrage, wodurch verhindert wird, dass sich das Problem des Schließens des ResultSet auf nachfolgende Vorgänge auswirkt.

Das obige ist der detaillierte Inhalt vonWarum löst mein Java-JDBC-Code „Vorgang nicht zulässig, nachdem ResultSet geschlossen wurde' aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage