zoukankan      html  css  js  c++  java
  • 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接口中的方法为基本方法传参和返回数据。

  • 相关阅读:
    《大话设计模式》读书笔记
    设计模式个人笔记
    多线程的单元测试工具
    设计模式六大原则
    时间复杂度和空间复杂度(转)
    排序算法笔记
    《人月神话》读书笔记
    微信公众号开发踩坑记录(二)
    微信公众号开发踩坑记录
    全栈工程师之路
  • 原文地址:https://www.cnblogs.com/mahuan2/p/7411806.html
Copyright © 2011-2022 走看看