[英]get multipulate value from stored procedure
我有這個存儲過程:
ALTER PROCEDURE dbo.getRegionsInArea
(
@areaID int,
@ID int OUTPUT,
@name varchar(50) OUTPUT
)
AS
BEGIN
SET NOCOUNT ON
SELECT @ID = [ID], @name = [name] FROM Region
WHERE areaID = @areaID
END
我想從JDBC
調用它。
如何獲取變量的所有值輸出ID
和name
因為存儲過程會返回它們的許多值。
Connection con = Database.getConnection();
String storedProcedure = "{call getRegionsInArea (?,?,?)}";
CallableStatement callableStatement = null;
try {
callableStatement = con.prepareCall(storedProcedure);
callableStatement.setInt(1, getID());
callableStatement.registerOutParameter(2,
java.sql.Types.INTEGER);
callableStatement.registerOutParameter(3,
java.sql.Types.VARCHAR);
callableStatement.execute();
System.out.println("ID = " + callableStatement.getInt(2));
System.out.println("name = "
+ callableStatement.getString(3));
我剛收到ID
和name
的最后一個值。
請幫忙
試試這個解決方案:
callableStatement = con.prepareCall(storedProcedure);
callableStatement.setInt(1, getID());
callableStatement.execute();
ResultSet resultSet = callableStatement.getResultSet();
while (resultSet.next()) {
int returnedID = resultSet.getInt(1);
String returnedName = resultSet.getString(2);
}
並改變你的SP像:
ALTER PROCEDURE dbo.getRegionsInArea
(
@areaID int
)
AS
BEGIN
SET NOCOUNT ON
SELECT [ID],[name] FROM Region
WHERE areaID = @areaID
END
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.