MyBatis 执行存储过程

简介: 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":"成功!"}


目录
相关文章
|
前端开发
前端 CSS 经典:模特换装效果
前端 CSS 经典:模特换装效果
294 0
|
人工智能 索引 Python
Python入门之【循环语句】全网最详细!
Python入门之【循环语句】全网最详细!
1113 0
|
设计模式 Java
小谈设计模式(12)—迪米特法则
小谈设计模式(12)—迪米特法则
|
数据管理 BI 定位技术
电话全自动在电脑上自动呼叫
电话全自动在电脑上自动呼叫
java202302java学习笔记第十三天-对象的内存图2
java202302java学习笔记第十三天-对象的内存图2
155 0
java202302java学习笔记第十三天-对象的内存图2
|
JSON 前端开发 easyexcel
谷粒学苑项目实战(十二):课程分类管理模块搭建
谷粒学苑项目实战(十二):课程分类管理模块搭建
322 0
谷粒学苑项目实战(十二):课程分类管理模块搭建
|
Ubuntu Oracle 数据可视化
|
设计模式
我学会了,观察者模式
观察者模式属于行为型模式,这个类型的设计模式总结出了 类、对象之间的经典交互方式,将类、对象的行为和使用解耦了,花式的去使用对象的行为来完成特定场景下的功能。
226 0
我学会了,观察者模式
|
网络安全
SSH常见异常笔记(3)
SSH常见异常笔记(3)
157 0