JDBC(Java Database Connectivity)是Java语言中用于连接和操作数据库的标准API。通过JDBC,Java应用程序可以执行SQL语句,包括调用存储过程。存储过程是预编译的SQL代码集合,存储在数据库中,可以通过名称调用。MySQL是一种流行的关系型数据库管理系统,支持存储过程。
MySQL中的存储过程主要有以下几种类型:
存储过程常用于以下场景:
以下是一个使用JDBC调用MySQL存储过程的示例:
DELIMITER //
CREATE PROCEDURE GetEmployeeById(IN empId INT, OUT empName VARCHAR(100))
BEGIN
SELECT name INTO empName FROM employees WHERE id = empId;
END //
DELIMITER ;
import java.sql.*;
public class JdbcCallStoredProcedure {
public static void main(String[] args) {
String url = "jdbc:mysql://localhost:3306/mydatabase";
String user = "username";
String password = "password";
try (Connection conn = DriverManager.getConnection(url, user, password)) {
// 注册JDBC驱动
Class.forName("com.mysql.cj.jdbc.Driver");
// 调用存储过程
CallableStatement cstmt = conn.prepareCall("{call GetEmployeeById(?, ?)}");
cstmt.setInt(1, 123); // 设置输入参数
cstmt.registerOutParameter(2, Types.VARCHAR); // 注册输出参数
cstmt.execute(); // 执行存储过程
String empName = cstmt.getString(2); // 获取输出参数
System.out.println("Employee Name: " + empName);
} catch (ClassNotFoundException | SQLException e) {
e.printStackTrace();
}
}
}
ClassNotFoundException
。SQLException
。SQLException
。领取专属 10元无门槛券
手把手带您无忧上云