在MyBatis中執行存儲過程通常有兩種方法:
select
標簽調用存儲過程:<select id="callProcedure" statementType="CALLABLE">
{call procedure_name(#{param1, mode=IN, jdbcType=INTEGER}, #{param2, mode=OUT, jdbcType=INTEGER})}
</select>
在這個例子中,callProcedure
是映射器文件中定義的方法,procedure_name
是要調用的存儲過程的名稱,param1
和param2
是存儲過程的參數。
update
標簽調用存儲過程并獲取返回值:<update id="callProcedure" statementType="CALLABLE">
{call procedure_name(#{param1, mode=IN, jdbcType=INTEGER}, #{param2, mode=OUT, jdbcType=INTEGER})}
</update>
在這個例子中,callProcedure
是映射器文件中定義的方法,procedure_name
是要調用的存儲過程的名稱,param1
是存儲過程的輸入參數,param2
是存儲過程的輸出參數。
無論使用哪種方法,都需要在MyBatis的映射器文件中定義對應的SQL語句,并指定參數的輸入輸出類型。調用存儲過程時,需要使用CALLABLE
作為statementType
指定存儲過程的調用方式。