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>