Home > Database > Mysql Tutorial > How to call a stored procedure using a callable statement in JDBC interpretation?

How to call a stored procedure using a callable statement in JDBC interpretation?

PHPz
Release: 2023-09-08 23:33:11
forward
1372 people have browsed it

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

You can use the CallableStatement interface to call SQL stored procedures. A Callable statement can have input parameters, output parameters, or both.

You can use prepareCall() to create an object of CallableStatement (interface) > Connection method of the interface. This method accepts a string variable representing the query to call the stored procedure and returns a CallableStatement object.

Assuming you have a procedure name myProcedure In the database, you can prepare a callable statement:

//Preparing a CallableStatement
CallableStatement cstmt = con.prepareCall("{call myProcedure(?, ?, ?)}");
Copy after login

Then, you can use the setter method of the CallableStatement interface as a placeholder character, and execute the callable statement using the execute() method as shown below.

cstmt.setString(1, "Raghav");
cstmt.setInt(2, 3000);
cstmt.setString(3, "Hyderabad");
cstmt.execute();
Copy after login

If the procedure has no input values, you can simply prepare the callable statement and execute it as follows:

CallableStatement cstmt = con.prepareCall("{call myProcedure()}");
cstmt.execute();
Copy after login

Example

Assume that there is a name in the MySQL database A table for Dispatches that contains the following data:

+--------------+------------------+------------------+----------------+
| 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     |
+--------------+------------------+------------------+----------------+
Copy after login

If we create a procedure named myProcedure to retrieve values ​​from this table as follows:

Create procedure myProcedure ()
-> BEGIN
-> SELECT * FROM Dispatches;
-> END //
Copy after login

Example

The following is a JDBC example that uses a JDBC program to call the above stored procedure.

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();
      }
   }
}
Copy after login

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
Copy after login

The above is the detailed content of How to call a stored procedure using a callable statement in JDBC interpretation?. For more information, please follow other related articles on the PHP Chinese website!

source:tutorialspoint.com
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template