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


目录
相关文章
|
11月前
|
SQL Java 数据库连接
由于你在执行MyBatis的查询时出现的问题
由于你在执行MyBatis的查询时出现的问题
70 1
|
5月前
|
SQL Java 数据库连接
Mybatis之Mybatis的各种查询功能和特殊SQL的执行
【1月更文挑战第3天】 一、MyBatis的各种查询功能 1、查询一个实体类对象 2、查询一个List集合 3、查询单个数据 4、查询一条数据为map集合 5、查询多条数据为map集合 1、方法一 2、方法二 二、特殊SQL的执行 1、模糊查询 2、批量删除 3、动态设置表名 4、添加功能获取自增的主键
175 1
Mybatis之Mybatis的各种查询功能和特殊SQL的执行
|
5月前
|
SQL druid Java
【MyBatis】2、MyBatis 的动态 SQL 和增删改操作
【MyBatis】2、MyBatis 的动态 SQL 和增删改操作
58 0
|
11月前
|
存储 XML Java
Mybatis中使用存储过程实践
Mybatis中使用存储过程实践
171 0
|
12月前
|
存储 Java 数据库连接
MyBatis 调用存储过程
MyBatis 调用存储过程
62 0
|
SQL XML 缓存
【MyBatis系列3】MyBatis SQL执行流程(一)
在《【MyBatis系列1】基础知识(上)》中,我们讲解了MyBaits的工作原理,以及它的四大核心组件的使用姿势,包括SqlSessionFactoryBuilder、SqlSessionFactory、SqlSession和SQL Mapper。在《【MyBatis系列1】基础知识(下)》中,通过完整的MayBatis使用示例,详细讲解了MyBatis的XML配置文件。
273 0
【MyBatis系列3】MyBatis SQL执行流程(一)
|
SQL Java 数据库连接
MyBatis执行SQL语句的两种方式
MyBatis执行SQL语句的两种方式
137 0
|
SQL XML 缓存
Mybatis如何执行Select语句,你真的知道吗?
Mybatis如何执行Select语句,你真的知道吗?
|
SQL XML 存储
一条 SQL 是如何在 MyBatis 中执行的
前言 MyBatis 执行 SQL 的核心接口为 SqlSession 接口,该接口提供了一些 CURD 及控制事务的方法,另外还可以通过 SqlSession 先获取 Mapper 接口的实例,然后通过 Mapper 接口执行 SQL,Mapper 接口方法的执行最终还是委托到 SqlSession 中的方法。
729 0
一条 SQL 是如何在 MyBatis 中执行的
|
存储 SQL XML
Mybatis-9-调用存储过程
存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集。经编译后存储在数据库中。现在要使用Mybatis调用数据库的存储过程。
98 0
Mybatis-9-调用存储过程