簡體   English   中英

如何從Java調用MSSQL存儲過程

[英]How to call a MSSQL stored procedure from java

我正在嘗試從Java調用存儲過程,但在使調用正確進行時遇到一些問題。 我查找了許多示例,但它們與我嘗試調用的存儲過程的語法不匹配。

    STORED PROCEDURE CODE
    ------------------------
    GO
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    ALTER PROCEDURE [dbo].[getMgr]
    @UserID as varchar(5),
    @ModeType as char(1)
    AS
    BEGIN
    SELECT usermgrid from AllEmployees WHERE (ModeType = @ModeType AND UserID = 
    @UserID)
    END
JAVA CODE
----------------------------
    connection = getConnection();
    cs = connection.prepareCall("{call lvhsp_GetManager(?, ?) }");
    cs.setString(0, someUserID);
    cs.setString(1, "0");
    ResultSet resultSet = cs.executeQuery();

我曾嘗試以多種不同的方式調用存儲過程,但是我仍然遇到錯誤。

當我這樣稱呼它時,我得到:

com.microsoft.sqlserver.jdbc.SQLServerException:索引0超出范圍。

我認為這是因為這不是傳遞參數的正確方法。

我也嘗試使用帶有和不帶有@的參數名稱(UserID,ModeType)來調用它,但這不起作用。

我想念什么?

請嘗試以下方法:

cs.setString(1, someUserID);
cs.setString(2, "0");

暫無
暫無

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

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