Rumah > pangkalan data > tutorial mysql > Bagaimana untuk memanggil prosedur tersimpan mysql dalam java

Bagaimana untuk memanggil prosedur tersimpan mysql dalam java

PHPz
Lepaskan: 2023-04-19 15:05:17
asal
1909 orang telah melayarinya

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;
Salin selepas log masuk

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");
Salin selepas log masuk

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(?, ?, ...)}");
Salin selepas log masuk

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(?, ?)}");
Salin selepas log masuk

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");
Salin selepas log masuk

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();
Salin selepas log masuk

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()) {
   // 处理结果集
}
Salin selepas log masuk

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);
Salin selepas log masuk

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();
}
Salin selepas log masuk

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();
      }
   }
}
Salin selepas log masuk

4. Nota

  1. Pastikan pemacu Mysql telah dimuatkan dan tersedia dalam projek;
  2. Parameter prosedur tersimpan boleh menjadi parameter input jenis masuk, parameter keluaran jenis keluar, atau parameter input dan output jenis masuk
  3. Jika prosedur tersimpan mempunyai parameter output , jenis parameter harus ditetapkan sebelum memanggil kaedah execute() jika tiada parameter output, tidak perlu menetapkan item ini
  4. Selepas melaksanakan prosedur tersimpan, CallableStatement dan sambungan mestilah; tertutup.

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!

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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan