文章目录
前言
一、service层
二、DAO层
三、map.xml
总结
前言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"));这里记录一下这种写法