要获取存储过程的输出参数,可以使用CallableStatement对象的registerOutParameter()方法注册输出参数,然后使用相应的getter方法获取参数的值,而不需要调用execute()方法。
以下是一个示例代码,演示如何获取存储过程的输出参数:
// 导入需要的Java类
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Types;
public class Main {
public static void main(String[] args) {
// 数据库连接信息
String url = "jdbc:mysql://localhost:3306/mydatabase";
String username = "root";
String password = "password";
// 定义SQL语句
String sql = "{call get_employee_details(?, ?)}"; // 存储过程的名称和参数
try {
// 连接数据库
Connection conn = DriverManager.getConnection(url, username, password);
// 创建CallableStatement对象
CallableStatement stmt = conn.prepareCall(sql);
// 注册输出参数
stmt.registerOutParameter(2, Types.INTEGER); // 注册第二个参数为输出参数
// 设置输入参数(如果有的话)
stmt.setInt(1, 100); // 设置第一个参数的值
// 执行存储过程
// stmt.execute(); // 不需要调用execute()方法
// 获取输出参数的值
int employeeId = stmt.getInt(2); // 获取第二个参数的值
// 输出结果
System.out.println("Employee ID: " + employeeId);
// 关闭连接和相关对象
stmt.close();
conn.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
在上面的示例中,我们使用CallableStatement对象的registerOutParameter()方法注册输出参数,并通过getInt()方法获取其值。注意,我们没有调用execute()方法,而是直接获取参数的值。
请根据你的具体存储过程和输出参数的类型来修改上面的示例代码。