广告
返回顶部
首页 > 资讯 > 数据库 >MySql 储存过程 多个结果返回解析
  • 786
分享到

MySql 储存过程 多个结果返回解析

mysqlmybatisjava 2023-09-27 16:09:12 786人浏览 薄情痞子
摘要

当需要查询复杂的数据模型并返回多个结果集时,使用 Mysql 存储过程可以有效地优化性能。同时,在开发中使用 mybatis 可以方便地调用 mysql 存储过程并获取多个结果集。本文将介绍如何在 Mybatis 中调用 Mysql 存

当需要查询复杂的数据模型并返回多个结果集时,使用 Mysql 存储过程可以有效地优化性能。同时,在开发中使用 mybatis 可以方便地调用 mysql 存储过程并获取多个结果集。本文将介绍如何在 Mybatis 中调用 Mysql 存储过程,并获取多个结果集。

1、在 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;

2、在 Mybatis XML 中定义调用存储过程的语句。

注意,其中 myResultMap1 和 myResultMap2 是用来设置结果集映射的

3、在 Java 代码中调用存储过程并获取结果集。

@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> resultList1 = new ArrayList<>();    List> resultList2 = new ArrayList<>();    params.put("resultset1", resultList1);    params.put("resultset2", resultList2);    myMapper.callMultiResultsetProcedure(params);    System.out.println("Result 1:");    for (Map result : resultList1) {        System.out.println(result.toString());    }    System.out.println("Result 2:");    for (Map result : resultList2) {        System.out.println(result.toString());    }}

在 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文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • MySql 储存过程 多个结果返回解析
    当需要查询复杂的数据模型并返回多个结果集时,使用 MySQL 存储过程可以有效地优化性能。同时,在开发中使用 Mybatis 可以方便地调用 MySQL 存储过程并获取多个结果集。本文将介绍如何在 Mybatis 中调用 MySQL 存...
    99+
    2023-09-27
    mysql mybatis java
  • mysql存储过程返回多个结果集的示例
    这篇文章给大家分享的是有关mysql存储过程返回多个结果集的示例的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。mysql存储函数只返回一个值。要开发返回多个值的存储过程,需要使用...
    99+
    2022-10-18
  • mysql存储过程 返回 list结果集方式
    目录mysql存储过程 返回 list结果集思路mysql存储过程和存储函数练习存储过程和存储函数语法存储函数案例演示mysql存储过程 返回 list结果集 思路 直接链接多个表返...
    99+
    2022-11-13
  • mysql存储过程 返回 list结果集方式
    目录mysql存储过程 返回 list结果集思路mysql存储过程和存储函数练习存储过程和存储函数语法存储函数案例演示mysql存储过程 返回 list结果集 思路 直接链接多个表返回结果集即可,先写成普通的sql调整好...
    99+
    2022-09-26
  • mybatis调用mysql存储过程(返回参数,单结果集,多结果集)
    目录一、接收一个返回值注意事项:存储过程主要分成三类:二、接收list结果集三、返回多个结果集四、第二种配置也可以一、接收一个返回值 使用Map接收返回参数,output参数放在传入...
    99+
    2022-11-12
  • 怎么在mysql存储过程中返回多个值
    本篇文章为大家展示了怎么在mysql存储过程中返回多个值,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。mysql存储函数只返回一个值。要开发返回多个值的存储过程,需...
    99+
    2022-10-18
  • 如何实现linq存储过程返回多条结果集
    这篇文章将为大家详细讲解有关如何实现linq存储过程返回多条结果集,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。linq存储过程默认生成的代码是ISingleResult的,也就是只能返回一...
    99+
    2023-06-17
  • mysql存储过程如何利用临时表返回结果集
    目录首先要声明的是测试示例 真实需求,查找出所有用建单情况首先要声明的是 1,游标的方法会很慢在mysql中,在oracle数据库中还可以,除非没有别的方法,一般不建议在mysql中使用游标, 2,不建议在my...
    99+
    2022-09-26
  • ExecutorServiceCallableFuture多线程返回结果原理解析
    目录正文简单例子异步执行内部实现run方法逻辑FutureTask的run方法set(result)方法正文 在并发多线程场景下,存在需要获取各线程的异步执行结果,这时,就可以通过E...
    99+
    2022-11-13
  • 存储过程的使用(五)——(返回结果集/设置多个变量值)--遇到坑
    表如下: 表数据:https://pan.baidu.com/s/1e9dpnr8sYvq_8-E-h5RxJg 提取码:fpig 复制这段内容后打开百度网盘手机App,操作更方便哦 如上图就是给多个变量设置值,像单个变量的查询结果设...
    99+
    2021-11-19
    存储过程的使用(五)——(返回结果集/设置多个变量值)--遇到坑
  • mybatis调用sqlserver存储过程返回结果集的方法
    第一种:返回值通过out输出 sqlserver存储 testMapper.xml 两种都能接收到数据的, 因为我的实体类字段与数据库的不一致,上面图片是按照数据库字段定义的,下...
    99+
    2022-11-12
  • 关于C#中使用Oracle存储过程返回结果集的问题
    问题: 在MSSQLServer中定义的存储过程可以直接返回一个数据集,如: create procedure sp_getAllEmployees as SELECT ...
    99+
    2022-11-12
  • 如何解决Linq存储过程返回问题
    这篇文章主要为大家展示了“如何解决Linq存储过程返回问题”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何解决Linq存储过程返回问题”这篇文章吧。存储过程在我们编写程序中,往往需要一些存储过...
    99+
    2023-06-17
  • SQL Server存储过程中怎么同时返回分页结果集和总数
    这期内容当中小编将会给大家带来有关SQL Server存储过程中怎么同时返回分页结果集和总数,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。1、内核层,通常也就是要查询的字...
    99+
    2022-10-18
  • mysql怎么执行多个存储过程
    要执行多个存储过程,可以使用MySQL的CALL语句。以下是一个示例:```CALL 存储过程1();CALL 存储过程2();```其中,"存储过程1"和"存储过程2"是你要执行的两个存储过程的名称。你可以根据实际情况替换它们。每个C...
    99+
    2023-08-11
    mysql
  • mybatis调用mysql存储过程并获取返回值方式
    目录mybatis调用mysql存储过程并获取返回值1、mysql创建存储过程2、mybatis调用mybatis调存储过程遇到返回值null的坑mybatis调存储过程时返回值nu...
    99+
    2022-11-13
  • mssql 存储过程调用另一个存储过程中的结果的方法分享
    摘要:下文将分享"一个存储过程"中如何调用"另一个存储过程的返回结果",并应用到自身的运算中 在实际开发中,我们经常会遇到在一个存储过程中调用另一个存储过程的返回结果...
    99+
    2022-10-18
  • Node.js查询MySQL并返回结果集给客户端的全过程
    目录前言一、mysql模块二、操作MySQL数据库1.配置Express路由模块2.创建Web服务器3.请求数据总结前言 mysql模块 + Express框架 + 原始Ajax请求...
    99+
    2022-12-27
    node查询mysql并返回结果集 nodejs操作mysql数据库 mysql结果集
  • MySQL的存储函数与存储过程的区别解析
    MySQL存储函数(自定义函数),函数一般用于计算和返回一个值,可以将经常需要使用的计算或功能写成一个函数。 存储函数和存储过程一样,都是在数据库中定义一些 SQL 语句的集合。 存...
    99+
    2022-11-13
  • 我们如何在 MySQL 存储过程中处理结果集?
    我们可以使用游标来处理存储过程中的结果集。基本上,游标允许我们迭代查询返回的一组行并相应地处理每一行。为了演示 CURSOR 在 MySQL 存储过程中的使用,我们正在创建以下存储过程,该过程基于名为“student_info”的表的值,如...
    99+
    2023-10-22
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作