当需要查询复杂的数据模型并返回多个结果集时,使用 Mysql 存储过程可以有效地优化性能。同时,在开发中使用 mybatis 可以方便地调用 mysql 存储过程并获取多个结果集。本文将介绍如何在 Mybatis 中调用 Mysql 存
当需要查询复杂的数据模型并返回多个结果集时,使用 Mysql 存储过程可以有效地优化性能。同时,在开发中使用 mybatis 可以方便地调用 mysql 存储过程并获取多个结果集。本文将介绍如何在 Mybatis 中调用 Mysql 存储过程,并获取多个结果集。
CREATE DEFINER=CURRENT_USER PROCEDURE `multi_resultset_procedure`(IN param1 INT, OUT resultset1 CURSOR, OUT resultset2 CURSOR)BEGIN -- First SELECT statement SELECT col1, col2 FROM table1 WHERE col3 = param1; -- Return the result set of the first SELECT statement OPEN resultset1 FOR SELECT col1, col2 FROM table1 WHERE col3 = param1; -- Second SELECT statement SELECT col3, col4 FROM table2 WHERE col5 = param1; -- Return the result set of the second SELECT statement OPEN resultset2 FOR SELECT col3, col4 FROM table2 WHERE col5 = param1;END;
注意,其中 myResultMap1
和 myResultMap2
是用来设置结果集映射的。
@Mapperpublic interface MyMapper { @Select({ "CALL multi_resultset_procedure(#{param1, mode=IN, jdbcType=INTEGER},", "#{resultset1, mode=OUT, jdbcType=CURSOR, resultMap=resultMap1},", "#{resultset2, mode=OUT, jdbcType=CURSOR, resultMap=resultMap2})" }) @Options(statementType = StatementType.CALLABLE) void callMultiResultsetProcedure(Map params);}@Autowiredprivate MyMapper myMapper;public void executeMultiResultsetProcedure() { Map params = new HashMap<>(); params.put("param1", 1); List
在 Java 代码中,我们通过注解 @Mapper
来注入 Mybatis 的 Mapper 接口,并调用 callMultiResultsetProcedure
方法来调用 MySQL 存储过程。
在调用存储过程时,我们需要传递输入参数和输出参数,并将其存储在一个 Map
对象中。接下来,我们获取输出参数 resultList1
和 resultList2
,以及它们对应的结果集,并输出到控制台。
制作不易,给个小赞
来源地址:https://blog.csdn.net/lijie0213/article/details/131196562
--结束END--
本文标题: MySql 储存过程 多个结果返回解析
本文链接: https://www.lsjlt.com/news/419845.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-05-09
2024-05-09
2024-05-09
2024-05-09
2024-05-08
2024-05-08
2024-05-08
2024-05-08
2024-05-08
2024-05-08
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0