Sie stoßen auf eine Java JDBC MySQL-Ausnahme aufgrund des folgenden Codes:
Statement statement; public void connect() { statement = connection.createStatement(); }
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; }
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!