在MyBatis中调用存储过程
<select id="callQyydfx" statementType="CALLABLE">
{call cz_srfx.p_srfx_qynsfx.USP_SP_QYYDFX(
#{as_nsrsbh,mode=IN,jdbcType=VARCHAR},
#{as_ny,mode=IN,jdbcType=VARCHAR},
#{as_s_errorcode,mode=OUT,jdbcType=VARCHAR},
#{as_s_errortext,mode=OUT,jdbcType=VARCHAR}
)}
</select>
1.这个方法的id为 callQyydfx,select标签必须加上属性:statementType,值为:CALLABLE,有该属性才能调用存储过程;
2.框架:{call 过程名(
#{参数1,mode=参数类型(IN|OUT),jdbcType=类型},
#{参数2,mode=参数类型(IN|OUT),jdbcType=类型}
)}
这里过程名有时候需要写成:用户名.包名.过程名,如上所示
3.补充:当定义的参数为 游标 类型时,jdbcType=CURSOR,这里list是多条数据,javaType=ResultSet,需要进行映射,定义了一个resultMap 的id为demoMap
#{list,mode=out,jdbcType=CURSOR,javaType=ResultSet,resultMap=demoMap}