mybatis mapper调用mysql存储过程

mybatis版本:3.4.4sql

存储过程

一、mapper.xml文件中配置相关的sql语句。mybatis

<select id="callTest" statementType="CALLABLE" >
{ 
    call hasResource(
        #{param1,mode=IN},
        #{param2,mode=IN},
        #{param3,mode=OUT,jdbcType=INTEGER}
    )
}
</select>

注意:parameterMap已被舍弃,请直接在sql语句中定义传参类型。app

注意:OUT参数必须指定jdbcType函数

二、定义mapper接口中的方法spa

void callTest(Map<String, Object> params);

注意:若是存储过程当中有OUT参数,调用时的传参只能是Map类型,调用结束后从Map中根据OUT参数的名称获取返回的数据。若是没有OUT参数,能够使用@Param方式定义接口中的传参。code

注意:在Mysql中,定义OUT参数为游标类型,好像很复杂,没找到相关资料。官网的存储过程文档特少,不知道是否是找错地方了。xml

注意:若是存储过程执行过程当中有sql调用,可做为存储过程的执行结果返回,同基本的select定义相似,增长resultMap或resultType参数,mapper接口增长返回参数类型。blog

函数

mapper.xml配置接口

<select id="callTest" resultType="int" >
  select functionTest(#{params1}, #{param2}) from dual;
</select>

mapper接口中的方法为基本方法传参和返回数据。文档

相关文章
相关标签/搜索