2020.03.06 springboot+mybatis+调用sqlserver存储过程

1.存储过程的定义
ALTER procedure [dbo].xxxx (
@ErrCode int output,
@ErrText nvarchar(200) output,
@Lang nvarchar(10),
@EMPCode nvarchar(10),
@AccNo nvarchar(14),
@TLimitTotal money output
)

2.controller

 @RequestMapping("/test")
    @ResponseBody
    public void test(){
        //入参都用map的形式,出参不必put进去
        Map<String,Object > parm = new HashMap<>();
        parm.put("Lang","Chinese");
        parm.put("AccNo","20190401010114");
        parm.put("EMPCode","1");
        testService.test(parm);
        //调用存储过程后,出参自动出现在了map中,直接get就行
        //很神奇有没有!
        log.info("返回值----"+parm.get("TLimitTotal"));

    }

3.xml

注意:statementType=“CALLABLE”,千万不要忘记哦


 <select id="test" parameterType="java.util.Map"
            statementType="CALLABLE" >
        {
          call dbo.xxxx
          (
          #{ErrCode,mode=OUT,jdbcType=INTEGER},
          #{ErrText,mode=OUT,jdbcType=VARCHAR},
          #{Lang,mode=IN,jdbcType=VARCHAR},
          #{EMPCode,mode=IN,jdbcType=VARCHAR},
          #{AccNo,mode=IN,jdbcType=VARCHAR},
          #{TLimitTotal,mode=OUT,jdbcType=DECIMAL}
          )
        }

    </select>

版权声明:本文为never_mm原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。