Rumah >pangkalan data >tutorial mysql >Mengapa Kod JDBC Java Saya Membuang \'Operasi tidak dibenarkan selepas ResultSet ditutup\'?

Mengapa Kod JDBC Java Saya Membuang \'Operasi tidak dibenarkan selepas ResultSet ditutup\'?

Susan Sarandon
Susan Sarandonasal
2024-11-23 13:41:13416semak imbas

Why Does My Java JDBC Code Throw

Pengecualian: "Operasi tidak dibenarkan selepas ResultSet ditutup"

Anda menghadapi pengecualian Java JDBC MySQL disebabkan kod berikut:

Statement statement;

public void connect() {
    statement = connection.createStatement();
}

Penjelasan Ralat:

Tokoh penyata dikongsi antara semua operasi pangkalan data. Apabila anda melaksanakan pertanyaan SELECT, ia mengembalikan objek ResultSet. Sebaik sahaja ResultSet ditutup (sama ada secara eksplisit atau tersirat), sebarang operasi lanjut pada pernyataan akan gagal dengan pengecualian "Operasi tidak dibenarkan selepas ResultSet ditutup."

Penyelesaian:

Untuk menyelesaikan isu ini, cipta objek Pernyataan baharu untuk setiap operasi pangkalan data, seperti sebagai:

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

Ini memastikan Penyata baharu digunakan untuk setiap pertanyaan, menghalang isu penutupan ResultSet daripada menjejaskan operasi seterusnya.

Atas ialah kandungan terperinci Mengapa Kod JDBC Java Saya Membuang \'Operasi tidak dibenarkan selepas ResultSet ditutup\'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn