簡體   English   中英

在Spring中的存儲過程中傳遞參數

[英]Pass parameters in a stored procedure in Spring

我的sql數據庫中有一個存儲過程,我想使用@Procedure批注從Java程序(帶有spring)中調用它。 到現在為止還挺好。

我用@Procedure(procedureName = "my_procedure")調用該過程。 問題是我想在過程中傳遞2個參數。

有沒有一種方法可以使用@Procedure批注來實現?

非常感謝你。

下面是一個例子 ,而這個文章可能會有所幫助。

首先,您需要在實體上聲明過程:

@NamedStoredProcedureQueries({ 
    @NamedStoredProcedureQuery(
        name = "my_procedure", 
        procedureName = "schema.my_procedure", 
        parameters = { 
            @StoredProcedureParameter(
                mode = ParameterMode.IN, 
                name = "first", 
                type = String.class),
            @StoredProcedureParameter(
                mode = ParameterMode.IN, 
                name = "second", 
                type = String.class) 
            },
            @StoredProcedureParameter(
                mode = ParameterMode.OUT, 
                name = "result", 
                type = Long.class) 
            }
    ) 
})

其次,在您的存儲庫中引用它

@Procedure(name = "my_procedure")
long getResult(@Param("first") String first, @Param("second") String second);

好的,這是解決方案!

如果名稱相同,則@Procedure批注可用於映射具有存儲過程的方法,如果類型相同,則將方法變量映射到過程參數足夠聰明。 但是,要將更改提交給db,必須使用Transactional批注。 恩。

@Procedure
@Transactional
void MyProcedureName(Integer par1 , Integer par2);

上面的代碼將從數據庫中調用過程MyProcedureName,並將par1和par2映射到MyProcedureName參數1和參數2。

暫無
暫無

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

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