Mybatis 如何实现返回多个结果集——详测版

news2024/12/26 23:02:54

文章结构

本文介绍一个在 Mybatis 中不常见的操作,但是可能有些朋友刚好需要用到,Mybatis 如何实现返回多个结果集

什么情况会返回多个结果集

  • 存储过程
  • 多个 select 语句

具体过程如下(作者实测:跟着观战就完事了):

1、首先你要在 url 连接中开启『多结果集查询allowMultiQueries=true

url: jdbc:mysql://localhost:3306/football?characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&rewriteBatchedStatements=true&AllowPublicKeyRetrieval=True&allowMultiQueries=true

2、Mybatis 的 mapper 层代码:

List<List<?>> testMultiQueries();

因为有多个结果,结果集的类型是不一样的,所以用泛型,返回类型定义为 List<List<?>>

3、xml 文件代码:

<!-- 因为我后面用不到第一个结果集,所以随便定义个 Map 来接收 -->
<resultMap id="tempResultMap" type="java.util.Map">
</resultMap>

<!--
	1、在 resultMap 指定多个结果集映射
	2、BaseResultMap 是我要使用的结果集映射,没贴出来
-->
<select id="testMultiQueries" resultMap="tempResultMap,BaseResultMap">
    -- 第一个 select
    SELECT @min_price:=MIN(hafu) as minPrice, @max_price:=MAX(hafu) as maxPrice FROM match_info;
    -- 第二个 select
    SELECT * FROM match_info WHERE hafu=@min_price OR hafu=@max_price;
</select>

备注:

1、定义了 2 个 resultMap 结果集。第一个结果集tempResultMap后面用不到随便定义一个,第二个结果集BaseResultMap映射业务类

2、定义了 2 个 select 语句。会被一起发送给 mysql 服务器,服务器执行后会返回 2 个结果集,mybatis 框架完成 2 个结果集的映射

4、取回多结果集截图

传送门:保姆式Spring5源码解析

欢迎与作者一起交流技术和工作生活

联系作者

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/603849.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

chatgpt赋能python:Python:一个强大、适用广泛的编程语言

Python&#xff1a;一个强大、适用广泛的编程语言 作为一种高级编程语言&#xff0c;Python 可以轻松地完成许多计算机编程任务。它是一种协作和代码重用的语言&#xff0c;Python旨在提高生产力并减少缺陷。 对于那些想要学习编程语言的人来说&#xff0c;Python 是非常适合…

Class源码

介绍 如果想要在程序运行阶段访问某个类的所有信息&#xff0c;并支持修改类的状态或者行为的话&#xff0c;肯定会用到反射&#xff0c;而反射靠的就是Class类。 通过Class类可以获取类的实例&#xff0c;构造方法&#xff0c;字段&#xff0c;成员方法&#xff0c;接口等信…

网络编程知识点总结(3)

socket 服务器的开发步骤和代码实现 1.创建套接字 socket()函数 int socket(int domain, int type, int protocol); domain: 指明所使用的协议族&#xff0c;通常为 AF_INET&#xff0c;表示互联网协议族(TCP/IP 协议族)AF_INET IPv4因特网域. AF_INET6 IPv6 因特网域 AF_U…

屏幕录制安卓应用被发现在监视用户

据 ESET 的研究人员称&#xff0c;一款在 Google Play 商店中下载量超过 50,000 次的屏幕录像机应用程序被发现使用设备的麦克风悄悄地录制音频并窃取文件&#xff0c;这表明它可能是间谍活动的一部分。 iRecorder 是一个合法的应用程序&#xff0c;于 2021 年 9 月可用&#…

chatgpt赋能python:Python动态函数介绍

Python动态函数介绍 Python是一种高级编程语言&#xff0c;它支持动态函数。动态函数就是在Python中可以在运行时创建函数。这意味着编程者可以在编写代码时不必事先定义所有函数&#xff0c;而是可以通过Python函数来创建函数。 Python动态函数的一个好处是可以轻松地编写可…

chatgpt赋能python:Python动态列表介绍

Python动态列表介绍 Python是一种常用的高级编程语言&#xff0c;它支持多种数据结构&#xff0c;其中包括列表。以Python中的列表为例&#xff0c;本文将详细介绍Python动态列表的特点和用途。 Python中的列表 在Python中&#xff0c;列表就是一组由逗号分隔&#xff0c;放…

基于PyQt5的图形化界面开发——队列动画演示

目录 0. 前言1. 了解队列2. 代码实现3. 效果演示其他PyQt5文章 0. 前言 本文使用PyQt5制作图形化界面演示数据结构中的队列操作&#xff0c;与上一节队列动画相对应 基于PyQt5的图形化界面开发——队列动画演示 操作系统&#xff1a;Windows10 专业版 开发环境&#xff1a;P…

javascript基础十六:Ajax 原理是什么?如何实现?

一、是什么 AJAX全称(Async Javascript and XML) 即异步的JavaScript 和XML&#xff0c;是一种创建交互式网页应用的网页开发技术&#xff0c;可以在不重新加载整个网页的情况下&#xff0c;与服务器交换数据&#xff0c;并且更新部分网页 Ajax的原理简单来说通过XmlHttpRequ…

Linux编辑器,开机重启,用户注销,用户管理 常用命令

Linux 实操篇- Vi 和Vim 编辑器 vi 和vim 的基本介绍 Linux 系统会内置vi 文本编辑器 Vim 具有程序编辑的能力&#xff0c;可以看做是Vi 的增强版本&#xff0c;可以主动的以字体颜色辨别语法的正确性&#xff0c;方便程序设计。 代码补完、编译及错误跳转等方便编程的功能特…

环境感知算法——4.RandLA-Net基于SemanticKITTI训练

1.前言 RandLA-Net&#xff08;Random Sampling and Local Feature Aggregator Network&#xff09;是一种处理点云数据的神经网络结构&#xff0c;采用随机采样&#xff08;Random Sampling, RS&#xff09;以降低点云密度并减少计算量。尽管随机采样可能会丢掉一些有用的信息…

【 STM32实例 】 智能小车的红外循迹

文章目录 前言一、硬件选择与连接1. STM32F103C8T6最小系统板2. L298N双路电机驱动3. 红外循迹模块 二、环境配置1. Device2. Output3. C/C4. Debug 三、项目管理与代码实现1. 项目结构2. 工程管理3. 具体文件xunji.cxunji.hmain.c 总结项目源码 前言 这篇文章我主要讲的是让基…

chatgpt赋能python:Python加颜色代码-提高代码可读性和吸引力的简单技巧

Python加颜色代码 - 提高代码可读性和吸引力的简单技巧 在编写Python代码时&#xff0c;您可能已经注意到&#xff0c;有时候需要强调某些部分&#xff0c;以使其更易于阅读和理解。这时候&#xff0c;您可以使用加颜色代码来增强代码的可读性和吸引力。在本文中&#xff0c;我…

Opencv项目实战:基于dlib的人脸关键点检测

文章目录 一、项目简介二、环境配置2.1、dlib人脸检测器&#xff1a;dlib.get_frontal_face_detector()2.2、dlib关键点定位工具&#xff1a;shape_predictor_68_face_landmarks.dat 三、项目实战 一、项目简介 该项目基于dlib模块提供的人脸检测器以及关键点定位工具完成。首…

大数据:hive数据库的操作语法,数据表,内部表,external外部表,数据导入导出load,insert

大数据&#xff1a; 2022找工作是学历、能力和运气的超强结合体&#xff0c;遇到寒冬&#xff0c;大厂不招人&#xff0c;可能很多算法学生都得去找开发&#xff0c;测开 测开的话&#xff0c;你就得学数据库&#xff0c;sql&#xff0c;oracle&#xff0c;尤其sql要学&#x…

chatgpt赋能python:关于Python中打开文件的语句详解

关于Python中打开文件的语句详解 在Python中&#xff0c;打开文件是一项常见的任务&#xff0c;可以用于读写文件和进行日志记录。本文将介绍Python中打开文件的语句&#xff0c;并提供一些实用技巧&#xff0c;以便方便地管理文件。 为什么需要打开文件&#xff1f; 在计算…

【动态规划】通配符匹配与正则表达式匹配

文章目录 一、通配符匹配1.1 思路分析1.2 初始化处理1.3 代码1.4 优化 二、正则表达式匹配2.1 思路分析2.2 初始化设置2.3 代码 一、通配符匹配 题目描述&#xff1a; 给你一个输入字符串 (s) 和一个字符模式 &#xff0c;请你实现一个支持 ‘?’ 和 ‘*’ 匹配规则的通配符…

如何在Github上免费部署网站

如何在Github上免费部署静态网站 背景一、新建仓库&#xff08;github账号的需要注册&#xff09;二、下载仓库三、将内容上传到远程仓库里四、启动Page服务 背景 部署网站需要服务器&#xff0c;但是如果你只是部署静态网站就可以蹭Github上的免费服务器。因为发现现在的过程…

基于springboot+Redis的前后端分离项目(一)-【黑马点评】

&#x1f381;&#x1f381;资源文件分享 链接&#xff1a;https://pan.baidu.com/s/1189u6u4icQYHg_9_7ovWmA?pwdeh11 提取码&#xff1a;eh11 基于session和redis实现登录 &#xff08;一&#xff09;前言&#xff08;二&#xff09;导入资源&#xff08;三&#xff09;短信…

Spring数据库事务处理

数据库事务的基本知识 ACID 两类丢失更新 事务回滚丢失更新&#xff1a; 目前大部分数据库已经通过锁的机制来避免了事务回滚丢失更新。 数据库锁的机制&#xff1a; 锁可以分为乐观锁和悲观锁&#xff0c;而悲观锁又分为&#xff1a;读锁(共享锁)和写锁(排它锁)&#xff0c;…

chatgpt赋能python:使用Python制作动画的步骤和工具

使用Python制作动画的步骤和工具 Python不仅是一种流行的编程语言&#xff0c;还可以用于制作动画。本文将介绍一些基本步骤和工具&#xff0c;帮助你制作出精美的动画作品。 步骤一&#xff1a;选择一个好的动画框架 Python有很多强大的动画框架可以使用。其中一些最受欢迎…