Java中调用SQL Server存储过程
时间: 2023-09-03 20:15:31 浏览: 100
Java调用SQL Server的存储过程详解
5星 · 资源好评率100%
在Java中调用SQL Server存储过程,需要使用JDBC驱动程序连接到数据库,并使用CallableStatement对象来执行存储过程。
以下是一个示例代码:
```
import java.sql.*;
public class CallStoredProcedureExample {
public static void main(String[] args) {
Connection conn = null;
CallableStatement stmt = null;
try {
// Connect to the database
conn = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;databaseName=mydb", "username", "password");
// Prepare the stored procedure call
stmt = conn.prepareCall("{call my_stored_proc(?, ?)}");
// Set the input parameters
stmt.setString(1, "John");
stmt.setString(2, "Doe");
// Execute the stored procedure
stmt.execute();
// Retrieve the output parameters
int returnValue = stmt.getInt(1);
String message = stmt.getString(2);
System.out.println("Stored procedure returned value: " + returnValue);
System.out.println("Message: " + message);
} catch (SQLException e) {
e.printStackTrace();
} finally {
// Close the statement and connection
try {
if (stmt != null) {
stmt.close();
}
if (conn != null) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
```
在上面的示例代码中,我们首先通过DriverManager.getConnection()方法连接到数据库。然后,我们使用CallableStatement.prepareCall()方法准备要调用的存储过程。在这个例子中,我们调用的存储过程有两个输入参数和两个输出参数。我们使用CallableStatement.setString()方法设置输入参数的值。然后,我们使用CallableStatement.execute()方法执行存储过程。最后,我们使用CallableStatement.getInt()和CallableStatement.getString()方法检索输出参数的值,并将其打印到控制台上。
需要注意的是,当调用存储过程时,我们需要使用大括号{}将存储过程的名称括起来,并在大括号内使用问号?代替参数的名称。例如,{call my_stored_proc(?, ?)}表示调用名为my_stored_proc的存储过程,该存储过程有两个参数。我们可以使用CallableStatement对象的setXXX()方法来设置参数的值。
另外,我们也可以使用CallableStatement.registerOutParameter()方法来注册存储过程的输出参数。例如,stmt.registerOutParameter(1, Types.INTEGER)表示将第一个输出参数注册为整数类型。在调用存储过程后,我们可以使用CallableStatement.getXXX()方法来获取输出参数的值。
阅读全文