Java ialah bahasa pengaturcaraan berorientasikan objek, dan interaksi dengan pangkalan data adalah operasi yang sangat biasa, manakala Mysql ialah salah satu pangkalan data hubungan yang paling banyak digunakan dalam industri. Dalam Mysql, prosedur tersimpan ialah unit program yang berkuasa yang melaksanakan berbilang pernyataan SQL dan mengembalikan hasil. Memanggil prosedur tersimpan Mysql dalam Java juga merupakan operasi yang sangat biasa Seterusnya, mari kita ketahui lebih lanjut tentang cara melaksanakan proses ini.
1. Penciptaan prosedur tersimpan Mysql
Dalam Mysql, anda boleh mencipta prosedur tersimpan melalui arahan berikut:
CREATE PROCEDURE procedure_name [parameters] BEGIN DECLARE local_variables; SQL_statements; END;
Di mana, procedure_name ialah nama bagi prosedur tersimpan, parameter Ia adalah parameter input prosedur tersimpan, yang boleh menjadi satu atau lebih, dipisahkan dengan koma. local_variables ialah pembolehubah tempatan yang digunakan dalam prosedur tersimpan, dan SQL_statements ialah semua pernyataan SQL yang akan dilaksanakan oleh prosedur tersimpan. Untuk butiran, anda boleh menyemak dokumentasi rasmi Mysql.
2. Langkah untuk memanggil prosedur tersimpan Mysql dalam Java
1 Sediakan sambungan pangkalan data
Untuk memanggil prosedur tersimpan Mysql dalam Java, anda perlu menyediakan sambungan pangkalan data terlebih dahulu. Anda boleh menggunakan JDBC untuk mendapatkan objek sambungan Mysql, seperti yang ditunjukkan di bawah:
Class.forName("com.mysql.jdbc.Driver"); Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/database_name", "username", "password");
Perlu diperhatikan di sini bahawa "com.mysql.jdbc.Driver" ialah nama kelas pemacu Mysql, dan anda perlukan untuk memastikan bahawa ia sudah ada dalam projek Pakej balang pemacu yang sepadan diimport.
2. Panggil prosedur tersimpan
Untuk memanggil prosedur tersimpan dalam Java, anda perlu menggunakan CallableStatement, yang mewakili objek pernyataan yang memanggil prosedur tersimpan. Sintaks khusus adalah seperti berikut:
CallableStatement cstmt = con.prepareCall("{call procedure_name(?, ?, ...)}");
Antaranya, procedure_name ialah nama prosedur yang disimpan untuk dipanggil, dan dalam kurungan adalah senarai parameter prosedur yang disimpan tanda soal, dipisahkan dengan koma. Dengan mengandaikan bahawa prosedur tersimpan mempunyai dua parameter, pernyataan di atas harus diubah suai sebagai:
CallableStatement cstmt = con.prepareCall("{call procedure_name(?, ?)}");
3 Tetapkan parameter
Untuk menetapkan nilai parameter prosedur tersimpan, anda boleh menggunakan. kaedah setXX(), dengan XX mewakili jenis data. Contohnya:
cstmt.setInt(1, 123); cstmt.setString(2, "hello");
Antaranya, parameter pertama menunjukkan kedudukan parameter, bermula dari 1 parameter kedua ialah nilai parameter.
4. Laksanakan prosedur tersimpan
Selepas menetapkan parameter, anda boleh melaksanakan prosedur tersimpan melalui kaedah execute():
cstmt.execute();
Kaedah execute() akan mengembalikan nilai A jenis boolean yang menunjukkan sama ada prosedur yang disimpan telah berjaya dilaksanakan.
5. Dapatkan keputusan
Jika prosedur tersimpan mengembalikan hasil, anda boleh mendapatkan set hasil melalui kaedah getResultSet():
ResultSet rs = cstmt.getResultSet(); while (rs.next()) { // 处理结果集 }
Jika disimpan procedure tidak mengembalikan hasil , tetapi terdapat parameter output, maka anda boleh mendapatkan nilai parameter output melalui kaedah getXX():
int result = cstmt.getInt(1);
Antaranya, parameter pertama masih menunjukkan kedudukan parameter.
6. Tutup sambungan
Akhir sekali, pastikan anda ingat untuk menutup sambungan pangkalan data:
if (con != null) { con.close(); }
3. Contoh kod
Yang berikut adalah contoh lengkap Kod menunjukkan cara memanggil prosedur tersimpan Mysql dalam Java:
import java.sql.*; public class Main { public static void main(String[] args) { try { // 准备连接 Class.forName("com.mysql.jdbc.Driver"); Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/database_name", "username", "password"); // 调用存储过程 CallableStatement cstmt = con.prepareCall("{call procedure_name(?, ?)}"); // 设置参数 cstmt.setInt(1, 123); cstmt.setString(2, "hello"); // 执行存储过程 boolean success = cstmt.execute(); if (success) { // 处理结果集 ResultSet rs = cstmt.getResultSet(); while (rs.next()) { // 处理结果集 int id = rs.getInt("id"); String name = rs.getString("name"); } } else { // 处理输出参数 int result = cstmt.getInt(1); } // 关闭连接 if (con != null) { con.close(); } } catch (Exception e) { e.printStackTrace(); } } }
4. Nota
Atas ialah kandungan terperinci Bagaimana untuk memanggil prosedur tersimpan mysql dalam java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!