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":"成功!"}
本文来自博客园,作者:VipSoft 转载请注明原文链接:https://www.cnblogs.com/vipsoft/p/18246272
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 清华大学推出第四讲使用 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的解决方法