怎样在JAVA里面用返回参数的存储过程

SYC_JAVAMEN 2006-08-31 03:54:41
怎样在JAVA里面用返回参数的存储过程
...全文
114 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
lip009 2006-08-31
  • 打赏
  • 举报
回复
try {
java.sql.Connection con = null;
java.sql.CallableStatement call = con.prepareCall("call pro(?)");
//设置返回值类型
call.registerOutParameter(1, java.sql.Types.DATE);
//执行存储过程
call.execute();
//取得返回值
java.sql.Date result = call.getDate(1);
}
catch (SQLException ex) {

}
infowain 2006-08-31
  • 打赏
  • 举报
回复
作为示例,在 SQL Server 2005 AdventureWorks 示例数据库中创建以下存储过程:

CREATE PROCEDURE GetImmediateManager
@employeeID INT,
@managerID INT OUTPUT
AS
BEGIN
SELECT @managerID = ManagerID
FROM HumanResources.Employee
WHERE EmployeeID = @employeeID
END

根据指定的整数 IN 参数 (employeeID),该存储过程也返回单个整数 OUT 参数 (managerID)。根据 HumanResources.Employee 表中包含的 EmployeeID,OUT 参数中返回的值为 ManagerID。

在以下示例中,将 AdventureWorks 示例数据库的打开连接传递给此函数,然后使用 execute 方法调用 GetImmediateManager 存储过程:

public static void executeStoredProcedure(Connection con) {
try {
CallableStatement cstmt = con.prepareCall("{call dbo.GetImmediateManager(?, ?)}");
cstmt.setInt(1, 5);
cstmt.registerOutParameter(2, java.sql.Types.INTEGER);
cstmt.execute();
System.out.println("MANAGER ID: " + cstmt.getInt(2));
}
catch (Exception e) {
e.printStackTrace();
}
}

23,405

社区成员

发帖
与我相关
我的任务
社区描述
Java 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧