MyBatis 执行存储过程

Mapper.xml

<insert id="setReport" statementType="CALLABLE" parameterType="Map">
    {call INSERT_EMR(
            #{IDH, mode=IN, jdbcType=NUMERIC},
            #{IJG, mode=IN, jdbcType=VARCHAR},
            #{IZD, mode=IN, jdbcType=VARCHAR},
            #{IZT, mode=IN, jdbcType=VARCHAR},
            #{IYS, mode=IN, jdbcType=VARCHAR},
            #{IRQ, mode=IN, jdbcType=DATE},
            #{ERRMSG, mode=OUT, jdbcType=VARCHAR},
            #{ERRCODE, mode=OUT, jdbcType=VARCHAR}
        )}
</insert>

ReportMapper.java

@Repository
public interface ReportMapper {

    /**
    * 入参为Map 方便
    */
    void setReport(Map param);
}

ReportController.java

@RestController
@RequestMapping("/report")
public class ReportController {
    @Autowired
    ReportMapper reportMapper;

    @GetMapping("/setReport/{reportNo}")
    @AuthIgnore
    public String setReport(@PathVariable("reportNo") String reportNo) throws Exception {
        Map<String, Object> map = new HashMap<>();
        map.put("IDH", reportNo);
        map.put("IJG", 'A');
        map.put("IZD", 'B');
        map.put("IZT", 'C');
        map.put("IYS", 'D');
        map.put("IRQ", 'E');
        map.put("ERRMSG", "");                                  //--OUT 返回 错误消息
        map.put("ERRCODE", "");                                 //--OUT 返回 错误编码
        logger.info("input => {}", JSON.toJSONString(map));
        reportMapper.setReport(map);
        logger.info("output => {}", JSON.toJSONString(map));
        return PojoUtil.pojoToJson(map);
    }
}

输出结果:

input => {"IDH":"123","IJG":"A","IZD":"B","IZT":"C","IYS":"D","IRQ":"E","ERRCODE":"","ERRMSG":""}

output => {"IDH":"123","IJG":"A","IZD":"B","IZT":"C","IYS":"D","IRQ":"E","ERRCODE":"1","ERRMSG":"成功!"}
posted @   VipSoft  阅读(73)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
历史上的今天:
2023-06-13 自然语言处理 Paddle NLP - 预训练语言模型及应用
2022-06-13 ThreadPoolExecutor 线程执行超时,释放线程
2013-06-13 Fatal error: Can't open and lock privilege tables: Table 'mysql.host' doesn't exist的解决方法
点击右上角即可分享
微信分享提示