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>