1、语法
Mybatis调用存储过程的写法与查询sql调用相同,Mapper xml文件的书写也是用select
标签,sql用call 存储过程名 (参数)
:
id: 与java接口方法名一致
statementType:申明为CALLABLE
,表示存储过程
2、一个参数的写法
mapper文件示例代码:
<select id="callCopyPro" statementType="CALLABLE" parameterType="String">
{call P_COPY_STUDENT(#{student_id,jdbcType=VARCHAR})}
</select>
3、多个参数的写法
mapper文件示例代码
<select id="calculateScore" statementType="CALLABLE" parameterType="java.util.HashMap">
{call p_calculate_score (
#{STUDET_ID,mode=IN,jdbcType=VARCHAR},
#{OUT_CODE,mode=OUT,jdbcType=VARCHAR},
#{OUT_SCORE,mode=OUT,jdbcType=VARCHAR})
}
</select>
语法大体是一样的,需要注意的是参数那里,多了一个配置项mode
,表示存储过程的入参IN
或者是出参OUT