mybatis mapper调用mysql存储过程

mybatis版本:3.4.4

存储过程

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

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

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

注意:OUT参数必须指定jdbcType

2、定义mapper接口中的方法

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

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

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

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

函数

mapper.xml配置

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

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

posted @ 2017-08-22 15:27  mahuan2  阅读(7654)  评论(0编辑  收藏  举报