SpringBoot查询接口传入参数为List,XML的写法

news2024/11/25 6:31:20

✉️ 查询业务

   ➿ 目前互联网项目的诸多业务中数查询业务居多,而查询业务中又数展示类接口、报表类接口是我们接触最多的查询类接口。在实际项目中,不是全局查询数据就做完了业务,这样的需求也没有意义。条件查询因此作为最普遍的查询业务,涉及到各种条件使查询的数据结果规范化合理化

✉️ 条件查询

   ➿ 条件查询本质上在sql层面是包含在where条件中的语句,SpringBoot接口传参一般都是多个字段组合构成,那么对应的where中就包含多个条件语句。传参只由基本数据类型字段组成是我们一开始做得最多的业务,注意点不多,这里就不再做过多阐述。下面就传参是List集合类型字段时,聊聊在代码层面的撰写方式。

📫 实例演示

   🔍应用最好的解答方式就是通过实际案例演示,下面就此进行展开。

   🔒实例应用:如何查询某个时间段内多个路段在多个方向上的车流量?

🔑① 构建返回的实体类RoadSectionTrafficVolume

@Data
public class RoadSectionTrafficVolume {

    @ApiModelProperty("****")
    private String roadSectionName;

    @ApiModelProperty("****")
    private String direction;

    @ApiModelProperty("****")
    private Integer vehicleCnt;

}

🔑② mapper层面

其中查询条件中包含开始时间结束时间方向及路段名称两个List集合

List<RoadSectionTrafficVolume> selectEveryRoadSectionTrafficList(@Param("beginDate")String beginDate, @Param("endDate")String endDate,
                                                                     @Param("directionList")List<String> directionList, @Param("roadSectionNameList")List<String> roadSectionNameList);

🔑③ XML写法

🔨 其中传参为List类型数据时,需要借助<foreach> </foreach>,与本人之前的文章:Mybatis如何批量插入数据?有相似之处(大家可以此为参考),但是又不是全部相同,毕竟一个是插入操作,另外一个查询操作。

🔨 这里给出一个项目中的Tip:像List这种多数据字段的条件sql语句用“in”语句将其条件进行包含,尽量少用or,因为踩过坑😂

🔨 下面的XML语句中,有曾未说明的元素属性需要做解释为:
open = "(" :该语句遇到 "(" 以此作为开始标志;
close = ")" :该语句遇到 ")" 以此作为结束标志。

<select id="selectEveryRoadSectionTrafficList" resultType="com.***.RoadSectionTrafficVolume">
    SELECT road_section_name AS roadSectionName, direction, SUM(vehicle_cnt) AS vehicleCnt
    FROM dws_road_section_traffic_volume
    WHERE formatDateTime(toDateTime(loadtime),'%Y-%m-%d %H:%M') &gt;= #{beginDate}
    AND formatDateTime(toDateTime(loadtime),'%Y-%m-%d %H:%M') &lt; #{endDate}
    AND road_section_name in
    <foreach collection="roadSectionNameList" item="roadSectionNameList" index="index" open="(" close=")" separator=",">
        #{roadSectionNameList}
    </foreach>
    AND direction in
    <foreach collection="directionList" item="directionList" index="index" open="(" close=")" separator=",">
        #{directionList}
    </foreach>
    GROUP BY road_section_name , direction
</select>

🍆🍆🍆路过的小伙伴,如果本篇博文对你的学习或者工作有所帮助,可以点赞+收藏+关注一波呀~👊👊👊小编后续每过一段时间会整理出相关项目实例的博文,感谢您的支持哦!!!✈️✈️✈️
在这里插入图片描述

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

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

相关文章

软件测试之优秀的产品质量评估模型的特征

产品质量评估中的几个场景&#xff1a; 场景1&#xff1a;项目计划的时间到了&#xff0c;就发布产品。 场景2&#xff1a;将缺陷修复率作为产品的质量目标。产品必须达到一定的缺陷修复率&#xff0c;才能发布。 场景3&#xff1a;我们为产品建立了很多指标来作为质量目标&…

报表开发工具FastReport .Net 如何在移动端生成Web报表应用?

FastReport .Net是一款全功能的Windows Forms、ASP.NET和MVC报表分析解决方案&#xff0c;使用FastReport .NET可以创建独立于应用程序的.NET报表&#xff0c;同时FastReport .Net支持中文、英语等14种语言&#xff0c;可以让你的产品保证真正的国际性。专业版和企业版包括Fast…

软件测试1-测试就是找茬游戏

软件测试是找茬游戏以前有一个很火的游戏叫《大家来找茬》&#xff0c;我玩这个游戏很厉害&#xff0c;在这个游戏中&#xff0c;两幅图中有几个不一样的地方&#xff0c;有些地方很明显&#xff0c;一眼就能看到&#xff0c;有的地方隐藏得比较深&#xff0c;要仔细看才能看清…

2PC(两阶段提交)方案

XA方案2PC的传统方案是在数据库层面实现的&#xff0c;如Oracle、MySQL都支持2PC协议&#xff0c;为了统一标准减少行业内不必要的对接成本&#xff0c;需要制定标准化的处理模型及接口标准&#xff0c;国际开放标准组织Open Group定义了分布式事务处理模型DTP&#xff08;Dist…

“遥感+”蓝碳储量估算、红树林信息提取

大气温室气体浓度不断增加&#xff0c;导致气候变暖加剧&#xff0c;随之会引发一系列气象、生态和环境灾害。如何降低温室气体浓度和应对气候变化已成为全球关注的焦点。海洋是地球上最大的“碳库”,“蓝碳”即海洋活动以及海洋生物&#xff08;特别是红树林、盐沼和海草&…

Fluent Python 笔记 第 13 章 正确重载运算符

运算符重载的作用是让用户定义的对象使用中缀运算符(如 和 |)或一元运算符(如 - 和 ~)。说得宽泛一些&#xff0c;在 Python 中&#xff0c;函数调用(())、属性访问(.)和元素访问 / 切片 ([])也是运算符&#xff0c;不过本章只讨论一元运算符和中缀运算符。 13.1 运算符重载基…

Tomcat安装、IDEA发布web项目及通过浏览器访问servlet程序

tomcat安装 在官网上下载tomcat安装包&#xff0c;推荐下载8.5版本 解压安装到任意磁盘&#xff0c;记住安装时的目录 在系统里找到高级系统设置——高级——环境变量——系统变量里的path——编辑——新建&#xff0c;内容填写tomcat中的bin路径的绝对路径。 在bin文件夹找…

【3D目标检测】Pseudo-Stereo for Monocular 3D Object Detection in Autonomous Driving

目录概述细节背景与整体流程图像级别生成特征级别生成损失函数学习深度感知的特征概述 本文是基于单目图像的3D目标检测方法。 【2021】【MonoDLE】 研究的问题: 能否借助立体图像检测算法提高单目图像检测的效果如何实现右侧图像的生成 解决的方法&#xff1a; 受启发于伪…

java基于springboot+vue微信小程序的学生健康管理

任何系统都要遵循系统设计的基本流程,本系统也不例外,同样需要经过市场调研,需求分析,概要设计,详细设计,编码,测试这些步骤,基于Java语言、微信小程序技术设计并实现了学生健康管理小程序。系统主要包括系统首页、个人中心、学生管理、健康档案管理、体检报告管理、健康评估管…

案例分享 | 某券商利用AI技术进行告警关联分析(上)

本内容来自公众号“布博士”------&#xff08;擎创科技资深产品专家&#xff09;背景&#xff1a;作为大型券商企业之一&#xff0c;某券商对深入数字化转型&#xff0c;以及对应用、网络、主机、操作系统、中间件、用户使用体验等的全面可观测性要求越来越强烈。由于可观测性…

机器学习在预测脊髓型颈椎病中的应用:一项28名参与者的事后初步研究

机器学习在预测脊髓型颈椎病中的应用:一项28名参与者的事后初步研究 Machine Learning for the Prediction of Cervical Spondylotic Myelopathy: A Post Hoc Pilot Study of 28 Participants 简单说&#xff1a;训练了两个模型&#xff1a;1)预测脊髓型颈椎病诊断&#xff0…

音乐 APP 用户争夺战,火山引擎 VeDI 助力用户体验升级!

更多技术交流、求职机会&#xff0c;欢迎关注字节跳动数据平台微信公众号&#xff0c;并进入官方交流群 国内数字音乐市场正在保持稳定增长。 根据华经产业研究院数据报告显示&#xff0c;2020 年数字音乐市场规模为 357.3 亿元&#xff0c;到 2022 年市场规模已增长至 482.7 …

2月编程语言排行榜新鲜出炉,谁又摘得桂冠?

近日&#xff0c;TIOBE公布了2023年2月编程语言排行榜&#xff0c;本月各个语言表现如何&#xff1f;谁又摘得桂冠&#xff1f;一起来看看吧&#xff01; TIOBE 2月Top15编程语言&#xff1a; 详细榜单查看TIOBE官网 https://www.tiobe.com/tiobe-index/ 关注IT行业的小伙伴…

LabVIEW中的软件定时应用可以达到怎样的精度

LabVIEW中的软件定时应用可以达到怎样的精度有一个基于软件定时的数据采集应用。采集任务在一个循环结构中完成&#xff0c;使用LabVIEW的定时函数。每次循环间的间隔应该是一个常量&#xff0c;但没有得到优于1ms的定时分辨率。解答:LabVIEW 或LabWindows/CVI定时函数使用的是…

PHP如何实现HTTP服务器

一般来讲&#xff0c;PHP很少谈到“实现HTTP服务”的说法&#xff0c;因为从早期的CGI到后来的PHP-FPM&#xff0c;官方已经给出了最稳定的HTTP解决方案&#xff0c;你只要配合一个Apache或Nginx类的服务器就能实现稳定的HTTP服务。 但PHP并非不能实现HTTP服务&#xff0c;一般…

知识付费小程序怎么做_分享知识付费小程序的作用

在线知识付费产业的主要业务逻辑是基于用户的主动学习需求&#xff0c;为其提供以跨领域基础知识与技能为核心的在线知识服务&#xff0c;提升其达到求知目的的效率。公众号和小程序的迅速发展&#xff0c;又为知识付费提供了技术支持&#xff0c;从而促进了行业的进一步发展。…

UE 虚幻引擎 【DT Subsystem】 插件说明

在虚幻中自带有子系统&#xff0c;可能实现自动实例化。 但是子系统只能在C中继承实现&#xff0c;本插件的目的则是可以直接在蓝图中创建并使用子系统。 官方子系统说明参考&#xff1a; 虚幻引擎编程子系统 | 虚幻引擎5.1文档 (unrealengine.com)https://docs.unrealengine…

Studio 3T 2023.1.1 (macOS, Linux, Windows) - MongoDB 的专业 GUI、IDE 和 客户端

The professional GUI, IDE and client for MongoDB 请访问原文链接&#xff1a;https://sysin.org/blog/studio-3t-2023/&#xff0c;查看最新版。原创作品&#xff0c;转载请保留出处。 作者主页&#xff1a;www.sysin.org Studio 3T&#xff0c;MongoDB 的专业 GUI、IDE 和…

桌面电脑如何快速体验DataEase?

DataEase是一款人人可用的数据可视化分析工具&#xff0c;致力于帮助用户快速分析数据并洞察业务趋势&#xff0c;从而实现业务的改进与优化。但有一些用户提出&#xff0c;目前大部分的部署场景都是将DataEase部署在服务器中&#xff0c;自己只有一台桌面电脑&#xff0c;是不…

初始C++(五):

文章目录一.auto关键字1.1auto关键字用法1.2auto关键字的小细节1.3h获取变量类型二.范围for(语法糖)三.nullptr和NULL一.auto关键字 1.1auto关键字用法 auto这个关键字其实非常简单&#xff0c;用处就是能自动帮你去匹配类型&#xff0c;像下面这段代码&#xff1a; int mai…