jdbc调用存储过程
时间: 2023-06-30 15:27:12 浏览: 99
JDBC调用存储过程
4星 · 用户满意度95%
要调用存储过程,可以使用 JDBC 中的 CallableStatement 接口。下面是一个示例代码:
```java
// 假设存储过程的名称为 my_stored_procedure,接收两个参数,返回一个结果集
String sql = "{call my_stored_procedure(?, ?, ?)}";
try (Connection conn = DriverManager.getConnection(url, username, password);
CallableStatement stmt = conn.prepareCall(sql)) {
// 设置参数
stmt.setInt(1, param1);
stmt.setString(2, param2);
// 注册结果集
stmt.registerOutParameter(3, Types.REF_CURSOR);
// 执行存储过程
stmt.execute();
// 获取结果集
try (ResultSet rs = (ResultSet) stmt.getObject(3)) {
while (rs.next()) {
// 处理结果集
}
}
} catch (SQLException e) {
// 异常处理
}
```
在上面的代码中,我们首先使用 DriverManager.getConnection() 方法获取一个数据库连接。然后,使用 conn.prepareCall() 方法创建一个 CallableStatement 对象,并传入存储过程的调用语句。接下来,我们设置存储过程的参数,使用 stmt.registerOutParameter() 方法注册结果集,最后执行存储过程。
执行存储过程后,我们可以使用 stmt.getObject() 方法获取结果集。注意,在 Oracle 数据库中,返回结果集的参数类型是 REF_CURSOR。在其他数据库中,可能会有不同的参数类型,需要根据具体情况进行调整。
阅读全文