Rumah > pangkalan data > tutorial mysql > Bagaimana untuk memanggil prosedur tersimpan menggunakan pernyataan boleh dipanggil dalam tafsiran JDBC?

Bagaimana untuk memanggil prosedur tersimpan menggunakan pernyataan boleh dipanggil dalam tafsiran JDBC?

PHPz
Lepaskan: 2023-09-08 23:33:11
ke hadapan
1367 orang telah melayarinya

如何在 JDBC 解释中使用可调用语句调用存储过程?

Anda boleh menggunakan antara muka CallableStatement untuk memanggil prosedur tersimpan SQL. Pernyataan Boleh Panggil boleh mempunyai parameter input, parameter output, atau kedua-duanya.

Anda boleh mencipta objek CallableStatement(antara muka) menggunakan prepareCall() > kaedah antara muka Connection. Kaedah ini menerima pembolehubah rentetan yang mewakili pertanyaan untuk memanggil prosedur tersimpan dan mengembalikan objek CallableStatement.

Andaikan anda mempunyai nama prosedur myProcedure Dalam pangkalan data, anda boleh menyediakan pernyataan boleh panggil:

//Preparing a CallableStatement
CallableStatement cstmt = con.prepareCall("{call myProcedure(?, ?, ?)}");
Salin selepas log masuk

Kemudian, anda boleh menggunakan kaedah penetap antara muka CallableStatement untuk menetapkan nilai untuk pemegang tempat, dan gunakan execute( ) kaedah untuk melaksanakan pernyataan boleh dipanggil seperti yang ditunjukkan di bawah.

cstmt.setString(1, "Raghav");
cstmt.setInt(2, 3000);
cstmt.setString(3, "Hyderabad");
cstmt.execute();
Salin selepas log masuk

Jika prosedur tidak mempunyai nilai input, anda hanya boleh menyediakan pernyataan boleh panggil dan laksanakannya seperti ini:

CallableStatement cstmt = con.prepareCall("{call myProcedure()}");
cstmt.execute();
Salin selepas log masuk

Contoh

Andaikan terdapat jadual bernama Dispatches dalam pangkalan data MySQL yang mengandungi data berikut:

+--------------+------------------+------------------+----------------+
| Product_Name | Date_Of_Dispatch | Time_Of_Dispatch | Location       |
+--------------+------------------+------------------+----------------+
| KeyBoard     | 1970-01-19       | 08:51:36         | Hyderabad      |
| Earphones    | 1970-01-19       | 05:54:28         | Vishakhapatnam |
| Mouse        | 1970-01-19       | 04:26:38         | Vijayawada     |
+--------------+------------------+------------------+----------------+
Salin selepas log masuk

Jika kita mencipta prosedur yang dipanggil myProcedure untuk mendapatkan semula nilai dari jadual ini seperti yang ditunjukkan di bawah:

Create procedure myProcedure ()
-> BEGIN
-> SELECT * FROM Dispatches;
-> END //
Salin selepas log masuk

Contoh

Berikut ialah contoh JDBC menggunakan program JDBC untuk memanggil prosedur tersimpan di atas.

import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
public class CallingProcedure {
   public static void main(String args[]) throws SQLException {
      //Registering the Driver
      DriverManager.registerDriver(new com.mysql.jdbc.Driver());

      //Getting the connection
      String mysqlUrl = "jdbc:mysql://localhost/sampleDB";
      Connection con = DriverManager.getConnection(mysqlUrl, "root", "password");
      System.out.println("Connection established......");

      //Preparing a CallableStateement
      CallableStatement cstmt = con.prepareCall("{call myProcedure()}");

      //Retrieving the result
      ResultSet rs = cstmt.executeQuery();
      while(rs.next()) {
         System.out.println("Product Name: "+rs.getString("Product_Name"));
         System.out.println("Date of Dispatch: "+rs.getDate("Date_Of_Dispatch"));
         System.out.println("Time of Dispatch: "+rs.getTime("Time_Of_Dispatch"));
         System.out.println("Location: "+rs.getString("Location"));
         System.out.println();
      }
   }
}
Salin selepas log masuk

output

Connection established......
Product Name: KeyBoard
Date of Dispatch: 1970-01-19
Time of Dispatch: 08:51:36
Location: Hyderabad

Product Name: Earphones
Date of Dispatch: 1970-01-19
Time of Dispatch: 05:54:28
Location: Vishakhapatnam

Product Name: Mouse
Date of Dispatch: 1970-01-19
Time of Dispatch: 04:26:38
Location: Vijayawada
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk memanggil prosedur tersimpan menggunakan pernyataan boleh dipanggil dalam tafsiran JDBC?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:tutorialspoint.com
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