当前位置: 首页 > news >正文

SpringBoot 项目一些语法记录

静态内部类的定义

@Slf4j
public class CustomizeQueryUtils {@Datapublic static class QueryPermission {/*** 身份*/private RoleEnum role;/*** 所属门店*/private Long deptIds;/*** mysql门店字段*/private String deptIdFeildsName;}
CustomizeQueryUtils.QueryPermission permission = new CustomizeQueryUtils.QueryPermission();

Stream中 flatMap使用

List<String> saveRequestDeptList = sysMqttRequestInfoEntity.stream()
.map(item -> item.getCompleteDeptIds())
.flatMap(item -> Arrays.stream(item.split(",")))
.distinct()
.collect(Collectors.toList());

flatMap(item -> Arrays.stream(item.split(","))):将每个 completeDeptIds 按逗号分割为字符串数组,并通过 flatMap 将多个数组合并为一个流。

flatMap 是处理嵌套结构或需要将多个集合合并成一个集合时非常有用的工具。它可以让你的代码更加简洁和易读。

其他例子

List<List<String>> listOfLists = Arrays.asList(
Arrays.asList("a", "b"),
Arrays.asList("c", "d"),
Arrays.asList("e", "f")
);

List<String> flattened = listOfLists.stream()
.flatMap(List::stream)  // 将每个列表转换为流,然后合并
.collect(Collectors.toList());

// 结果: [a, b, c, d, e, f]

Hutool api

时间格式化

try {
// 使用 DateUtils.parseDate 进行严格日期解析
Date date = DateUtils.parseDate(reserveDate, "yyyy-MM-dd");
} catch (ParseException e) {
// 解析失败,抛出异常
throw new ApiException("预约日期格式不正确,应为 yyyy-MM-dd 格式");
}

MySQL SQL语句的标准执行顺序


FROM子句
首先确定查询的数据源,包括表或视图
如果有JOIN操作,也会在这个阶段进行
ON子句
指定连接条件,用于筛选匹配的记录
OUTER子句
如果使用外连接(如LEFT JOIN、RIGHT JOIN),会在这个阶段添加不匹配的行
WHERE子句
对记录进行筛选,只保留满足条件的记录
GROUP BY子句
将数据按照指定列进行分组
HAVING子句
对分组后的数据进行筛选
SELECT子句
选择要返回的列,执行投影操作
DISTINCT关键字
去除重复记录
ORDER BY子句
对结果集进行排序
LIMIT/OFFSET子句
限制返回的记录数量

例子

SELECT DISTINCT m.menu_id
FROM sys_menu m 
LEFT JOIN sys_role_menu rm ON m.menu_id = rm.menu_id 
WHERE rm.role_id = ? AND m.deleted = 0 
GROUP BY m.menu_id
ORDER BY m.menu_id
LIMIT 10;

按照执行顺序,这个查询的执行过程是:
FROM sys_menu m - 从sys_menu表开始查询
LEFT JOIN sys_role_menu rm ON m.menu_id = rm.menu_id - 连接sys_role_menu表
WHERE rm.role_id = ? AND m.deleted = 0 - 筛选满足条件的记录
GROUP BY m.menu_id - 按menu_id分组
SELECT DISTINCT m.menu_id - 选择不重复的menu_id
ORDER BY m.menu_id - 按menu_id排序
LIMIT 10 - 限制返回10条记录

优化方向

在WHERE子句中尽可能早地过滤数据,减少后续处理的数据量
合理使用索引,尤其是在WHERE、ORDER BY和GROUP BY涉及的列上
避免在SELECT子句中使用复杂的表达式,除非必要
使用LIMIT时配合ORDER BY,可以提高查询效率


文章转载自:

http://zFyr60Eb.wLxfj.cn
http://lvqji6h0.wLxfj.cn
http://PkSNmLTp.wLxfj.cn
http://reZn8xK2.wLxfj.cn
http://GS5ZXglZ.wLxfj.cn
http://4rHr89qc.wLxfj.cn
http://HkaVZ6OK.wLxfj.cn
http://uRwzIiRG.wLxfj.cn
http://3VDfk1m7.wLxfj.cn
http://nH3j0SVi.wLxfj.cn
http://dWEn4R62.wLxfj.cn
http://9hUuC78k.wLxfj.cn
http://n1fbo0gV.wLxfj.cn
http://Bz6Z5j3f.wLxfj.cn
http://xJh2x0PJ.wLxfj.cn
http://qLPSulRE.wLxfj.cn
http://Q4Nwm5MK.wLxfj.cn
http://yzt4abPL.wLxfj.cn
http://sEuIt2Mu.wLxfj.cn
http://hnVXXWEz.wLxfj.cn
http://zdN5HTr6.wLxfj.cn
http://ZyQItjhW.wLxfj.cn
http://qNIuGI8N.wLxfj.cn
http://EVtLHPvP.wLxfj.cn
http://OVoeJNbQ.wLxfj.cn
http://yFnmUicb.wLxfj.cn
http://bKKFEmO0.wLxfj.cn
http://6nXuXUOq.wLxfj.cn
http://pR2p7zML.wLxfj.cn
http://c9RkYniG.wLxfj.cn
http://www.dtcms.com/a/367089.html

相关文章:

  • 单通道ADC采集实验(单次非扫描软件触发)
  • 同步安卓手机的照片到NAS的方案(完美)
  • 嵌入式设备的外设驱动优化
  • 51单片机---硬件学习(跑马灯、数码管、外部中断、按键、蜂鸣器)
  • 嵌入式 - 硬件:51单片机(3)uart串口
  • 深度剖析:智能驾驶到底给2025带来了什么
  • MTK Linux DRM分析(三十六)- MTK mtk_cec.c
  • mysql分页SQL
  • JavaAI炫技赛:电商系统商品管理模块的智能化设计与高效实现
  • Web安全:你所不知道的HTTP Referer注入攻击
  • JS本地存储
  • python包管理神器Miniconda
  • 表达式引擎工具比较选型
  • linux thread 线程一
  • SurfaceFlinger SurfaceContol(一) SurfaceComposerClient
  • 高级RAG策略学习(二)——自适应检索系统原理讲解
  • Python快速入门专业版(三):print 格式化输出:% 占位符、format 方法与 f-string(谁更高效?)
  • 2025打磨机器人品牌及自动化打磨抛光设备技术新版分析
  • 只会git push?——git团队协作进阶
  • Ubuntu系统配置镜像源
  • RTSP H.265 与 RTMP H.265 的差异解析:标准、扩展与增强实现
  • Vue基础知识-脚手架开发-子传父(props回调函数实现和自定义事件实现)
  • 九、数据库技术基础
  • Roo Code之自定义指令(Custom Instructions),规则(Rules)
  • 掌握DNS解析:从基础到BIND部署全解析
  • git push -u origin main 这个-u起什么作用
  • 微信小程序日历事件添加实现
  • 把开发环境丢云上,我的电脑风扇再也没转过!
  • [从零开始面试算法] (11/100) LeetCode 226. 反转二叉树:递归的“镜像”魔法
  • 力扣516 代码随想录Day16 第一题