前言
mybatis调用存储过程的一种写法记录
一、service层
@Override
public ReturnMsg checkOnlineBookout(Map<String, Object> param) {
log.info("复核线上租书单:{}",param);
Map<String, String> params = new HashMap<>();
params.put("frm_name", "线上租书");
params.put("dh", param.get("dh").toString());
params.put("user_code", "9999");
params.put("user_name", "线上租书");
params.put("bm_name", param.get("bm_name").toString());
params.put("corp_name", "");
params.put("msginfo", "");
// 调用存储过程
bookOutTitleDao.checkOnlinebookout(params);
return new ReturnMsg().setData(params.get("msginfo"));
}
二、DAO层
void checkOnlinebookout(Map<String, String> params);
三、map.xml
<select id="checkOnlinebookout" parameterType="map" statementType="CALLABLE" resultType="String">
<![CDATA[
{call cp_check_onlinebookout(
#{frm_name, jdbcType=VARCHAR, mode=IN},
#{dh, jdbcType=VARCHAR, mode=IN},
#{user_code, jdbcType=VARCHAR, mode=IN},
#{user_name, jdbcType=VARCHAR, mode=IN},
#{bm_name, jdbcType=VARCHAR, mode=IN},
#{corp_name, jdbcType=VARCHAR, mode=IN},
#{msginfo, jdbcType=VARCHAR, mode=OUT}
)
}
]]>
</select>
总结
这是一种没有在xml里面写返回结果集的 做法,dao层也没有,但是可以取到存储过程的返回值
return new ReturnMsg().setData(params.get(“msginfo”));这里记录一下这种写法
版权声明:本文为fangzhihua0927原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。