簡體   English   中英

無法通過Java檢索存儲過程返回值

[英]Unable to retrieve Stored Procedure Return value through Java

我正在嘗試通過JPA從用sql server 2008編寫的存儲過程中檢索結果。 我遇到了一種非常荒謬的情況,在這種情況下,我可以從結尾有select語句的存儲過程中檢索結果。 在這種情況下,我可以通過調用

storedProcedureQuery.getSingleResult();

但是,如果存儲過程最后包含返回值的return語句,則我將無法獲得任何結果,並且同一查詢將返回空指針異常。

返回值的存儲過程如下:

CREATE PROCEDURE callSP
    @value int
    AS
BEGIN
    SET NOCOUNT ON;
    select 1;
END
GO

導致錯誤的存儲過程如下所示:-

CREATE PROCEDURE callSP
    @value int
    AS
BEGIN
    SET NOCOUNT ON;
    RETURN 1;
END
GO

還有其他方法可以通過JPA檢索返回值嗎?

如果選擇返回值,則必須執行以下操作:

CallableStatement storedProcedureQuery = con.prepareCall("{? = call my_procedure (?,?)}"); 

storedProcedureQuery.execute();
int groupId = cs.getInt(1);`

但是,如果返回ResultSet,則必須執行以下操作:

ResultSet rs = storedProcedureQuery.executeQuery();
if (rs.next())
    int groupId = rs.getInt(1);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM