在MyBatis中調用Oracle存儲過程可以通過使用select
或update
語句執行存儲過程的方式來實現。以下是一個示例:
<select id="callProcedure" parameterType="map" statementType="CALLABLE">
{call PROCEDURE_NAME(
#{inputParam1, mode=IN, jdbcType=INTEGER},
#{inputParam2, mode=IN, jdbcType=VARCHAR},
#{outputParam, mode=OUT, jdbcType=INTEGER}
)}
</select>
在這個示例中,PROCEDURE_NAME
是要調用的存儲過程的名稱,inputParam1
和inputParam2
是存儲過程的輸入參數,outputParam
是輸出參數。在parameterType
中使用map
,并在mode
中指定參數的類型和方向。
然后在Java代碼中使用MyBatis的SqlSession
執行該存儲過程的調用:
Map<String, Object> params = new HashMap<>();
params.put("inputParam1", 123);
params.put("inputParam2", "abcdef");
params.put("outputParam", null);
sqlSession.selectOne("callProcedure", params);
Integer outputParamValue = (Integer) params.get("outputParam");
System.out.println("Output parameter value: " + outputParamValue);
通過這種方式,可以在MyBatis中調用Oracle存儲過程并獲取輸出參數的值。