公司要用到Mybatis连接Mysql的存储过程的函数,再次记录一下😃 0. 创建一个test的表,存储结构如下 1. 打开Navicat,新建一个函数,选择过程,IN为输入的参数,OUT为输出的参数 2.编写sql BEGIN select method into spMethod from test where id=spId; END 3.测试存储过程,第一个是参数的值,第二参数是字段的名字 call select_by_id_call("haha",@spMethod); select @spMethod; 4.编写MyBatis中xml文件来调用存储过程 <select id="selectByIdByCall" statementType="CALLABLE" useCache="false"> { call select_by_id_call ( #{spId, mode=IN, jdbcType=VARCHAR}, #{spMethod, mode=OUT, jdbcType=VARCHAR} ) } </select> 5.Controller层调用,注意:查询和返回的结果都是以Map字典的形式返回 @GetMapping(value = "/selectByIdByCall/{id}") @ResponseBody public Result selectByIdByCall(@PathVariable String id){ Map<String, Object> map = new HashMap<>(); // 更具Id查询 map.put("spId", id); // 调用存储过程函数 testService.selectByIdByCall(map); // 返回查询结果 return ResultUtil.success(map); } 6.查看下返回的结果,data中即使我们查询返回的结果🤪 7.注意:字段类型需要注明大小