Rumah > Java > javaTutorial > Bagaimanakah Saya Boleh Melaksanakan Berbilang Pertanyaan SQL dalam Pernyataan Java Tunggal?

Bagaimanakah Saya Boleh Melaksanakan Berbilang Pertanyaan SQL dalam Pernyataan Java Tunggal?

Barbara Streisand
Lepaskan: 2024-12-21 09:50:13
asal
658 orang telah melayarinya

How Can I Execute Multiple SQL Queries in a Single Java Statement?

Melaksanakan Berbilang Pertanyaan dalam Java dalam Satu Pernyataan

JDBC biasanya menimbulkan pengecualian apabila cuba melaksanakan berbilang pertanyaan dalam satu pernyataan, a ciri tersedia dalam pelayar pertanyaan MySQL. Walau bagaimanapun, terdapat dua pendekatan yang memudahkan fungsi ini:

Pendekatan 1: Mengkonfigurasi Berbilang Pertanyaan

Tetapkan sifat sambungan "allowMultiQueries" kepada "true" dalam URL pangkalan data untuk mendayakan berbilang pertanyaan yang dipisahkan oleh koma bertitik. Ini harus dinyatakan semasa permintaan sambungan.

String dbUrl = "jdbc:mysql:///test?allowMultiQueries=true";
Salin selepas log masuk

Daripada menggunakan "executeBatch," gunakan "execute(String sql)" untuk mendapatkan semula hasil pelaksanaan pertanyaan. Ulangi hasil dan prosesnya menggunakan langkah berikut:

boolean hasMoreResultSets = stmt.execute(multiQuerySqlString);
READING_QUERY_RESULTS:
while (hasMoreElementsResultSets || stmt.getUpdateCount() != -1) {
    if (hasMoreElementsResultSets) {
        ResultSet rs = stmt.getResultSet();
        // Handle result set here
    } else { // DDL/DML operation
        int queryResult = stmt.getUpdateCount();
        if (queryResult == -1) { // No more queries
            break READING_QUERY_RESULTS;
        }
        // Handle success, failure, or generated keys here
    }
    hasMoreElementsResultSets = stmt.getMoreResults();
}
Salin selepas log masuk

Pendekatan 2: Prosedur Tersimpan dengan Kursor

Buat prosedur tersimpan yang melaksanakan berbilang pertanyaan, termasuk pilih dan penyata DML. Panggil prosedur ini daripada Java menggunakan "CallableStatement." Pendekatan ini membolehkan anda menangkap berbilang ResultSets. Walau bagaimanapun, hasil DML tidak boleh ditangkap secara langsung.

CallableStatement cstmt = con.prepareCall("call multi_query()");
boolean hasMoreResultSets = cstmt.execute();
READING_QUERY_RESULTS:
while (hasMoreElementsResultSets) {
    ResultSet rs = stmt.getResultSet();
    // Handle result set here
}
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Melaksanakan Berbilang Pertanyaan SQL dalam Pernyataan Java Tunggal?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan