MyBatis提供了幾種調用存儲過程的方式,具體取決于你使用的數據庫和存儲過程的類型。
使用select語句調用存儲過程:
<select id="callProcedure" statementType="CALLABLE">
{call procedure_name(#{param1, mode=IN}, #{param2, mode=INOUT})}
</select>
mode=IN
表示參數是輸入參數,mode=INOUT
表示參數是輸入輸出參數。
使用insert、update、delete語句調用存儲過程:
<insert id="callProcedure" statementType="CALLABLE">
{call procedure_name(#{param1, mode=IN}, #{param2, mode=INOUT})}
</insert>
使用存儲過程語句調用存儲過程:
<statement id="callProcedure" statementType="CALLABLE">
{call procedure_name(#{param1, mode=IN}, #{param2, mode=INOUT})}
</statement>
在以上示例中,procedure_name
是存儲過程的名稱,param1
和param2
是存儲過程的參數。mode=IN
用于指定參數的輸入模式,mode=INOUT
用于指定參數的輸入輸出模式。
調用存儲過程時,你可以使用#{}
占位符來指定參數的值。例如,#{param1}
表示參數param1
的值。
此外,你還可以使用#{result, mode=OUT, jdbcType=INTEGER}
來獲取存儲過程的輸出參數值。其中,result
是輸出參數的名稱,mode=OUT
表示參數是輸出參數,jdbcType=INTEGER
表示參數的類型是整數類型。