Rumah >Java >javaTutorial >Bagaimanakah Saya Boleh Melaksanakan Berbilang Pernyataan SQL dalam Penyata JDBC Tunggal?
Berbilang Pertanyaan dalam Satu Pernyataan Menggunakan JDBC
JDBC membenarkan pelaksanaan berbilang pernyataan SQL dalam satu operasi. Ini boleh berguna dalam situasi di mana anda perlu melakukan berbilang tindakan bebas atau mengemas kini berbilang jadual dalam satu transaksi.
Contoh Kod:
Pertimbangkan contoh kod berikut, yang mencontohi tingkah laku pertanyaan MySQL yang anda nyatakan:
String sqlQuery = "SELECT * FROM TABLE; INSERT INTO TABLE;"; Statement statement = connection.createStatement(); statement.execute(sqlQuery);
Kaedah 1: Sambungan Harta
Untuk mendayakan pelaksanaan berbilang pertanyaan dalam satu pernyataan, anda boleh menetapkan sifat sambungan allowMultiQueries kepada benar. Ini mengarahkan pemacu JDBC untuk membenarkan pelaksanaan berbilang pertanyaan yang dipisahkan oleh koma bertitik.
String url = "jdbc:mysql://localhost:3306/databaseinjection?allowMultiQueries=true"; Connection connection = DriverManager.getConnection(url, sqlUsername, sqlPassword);
Kaedah 2: Prosedur Tersimpan
Sebagai alternatif, anda boleh mencipta prosedur tersimpan dalam pangkalan data anda yang merangkumi berbilang pertanyaan. Kemudian, panggil prosedur tersimpan dari Java menggunakan CallableStatement. Ini membolehkan anda menangkap berbilang objek ResultSet yang dikembalikan oleh prosedur.
// Create a stored procedure String storedProcedure = "CREATE PROCEDURE multi_query() BEGIN SELECT * FROM TABLE; INSERT INTO TABLE; END;"; // Call the stored procedure CallableStatement cstmt = connection.prepareCall("{call multi_query()}"); cstmt.execute(); // Retrieve result sets while (cstmt.getMoreResults()) { ResultSet resultSet = cstmt.getResultSet(); // Handle the result set here }
Faedah Berbilang Pertanyaan:
Nota:
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Melaksanakan Berbilang Pernyataan SQL dalam Penyata JDBC Tunggal?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!