MySQL 什么是存储过程?如何使用JDBC程序调用存储过程?

MySQL 什么是存储过程?如何使用JDBC程序调用存储过程?

存储过程是存储在SQL目录中的SQL语句部分和子程序。所有可以访问关系型数据库(JavaPython、PHP等)的应用程序都可以访问这些存储过程。

存储过程包含IN和OUT参数或两者都有。如果使用SELECT语句,则它们可能会返回结果集,也可以返回多个结果集。

阅读更多:MySQL 教程

示例

假设我们在MySQL数据库中有一个名为 Dispatches 的表,其中包含以下数据:

+--------------+------------------+------------------+------------------+
| 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       |
+--------------+------------------+------------------+------------------+

如果我们创建了一个名为myProcedure的过程,用于从此表中检索值,如下所示:

Create procedure myProcedure ()
-> BEGIN
-> SELECT * from Dispatches;
-> END //

示例

以下是使用JDBC程序调用上述存储过程的示例。

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 {
      //注册驱动程序
      DriverManager.registerDriver(new com.mysql.jdbc.Driver());

      //获取连接
      String mysqlUrl = "jdbc:mysql://localhost/sampleDB";
      Connection con = DriverManager.getConnection(mysqlUrl, "root", "password");
      System.out.println("连接已建立......");
      //准备CallableStateement
      CallableStatement cstmt = con.prepareCall("{call myProcedure()}");
      //检索结果
      ResultSet rs = cstmt.executeQuery();
      while(rs.next()) {
         System.out.println("产品名称:"+rs.getString("Product_Name"));
         System.out.println("发货日期:"+rs.getDate("Date_Of_Dispatch"));
         System.out.println("发货时刻:"+rs.getTime("Time_Of_Dispatch"));
         System.out.println("地点:"+rs.getString("Location"));
         System.out.println();
      }
   }
}

输出

连接已建立......
产品名称:KeyBoard
发货日期:1970-01-19
发货时刻:08:51:36
地点:Hyderabad

产品名称:Earphones
发货日期:1970-01-19
发货时刻:05:54:28
地点:Vishakhapatnam

产品名称:Mouse
发货日期:1970-01-19
发货时刻:04:26:38
地点:Vijayawada

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程