自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(41)
  • 收藏
  • 关注

原创 MySQL 支持的各类索引

在设计索引时,如果某些查询只需要返回少数几个字段,可以尝试创建一个包含这些查询字段的复合索引,使其成为覆盖索引,避免回表,能极大提升性能。:当MySQL优化器判断通过索引回表查询的成本高于直接顺序扫描全表时,会放弃使用索引。除全文索引外,下文讨论的索引类型(如唯一、主键、复合索引)默认都使用B+Tree结构。如果无法避免,优化器在数据量大时可能选择全表扫描,因为否定条件通常需要扫描大部分数据。,因为数据库引擎只需扫描索引即可返回数据,无需回表查询数据行。复合索引一索引多用,且比多个单列索引更高效。

2025-12-26 16:29:36 647

原创 优化SQL:如何使用 EXPLAIN

EXPLAIN是优化SQL查询不可或缺的工具。掌握其输出结果中type和Extra列的含义,是定位性能问题的关键。ALLrefrangeExtra下面这个表格汇总了使用EXPLAIN时返回结果中各字段的核心含义。字段含义与解读要点id​SELECT 查询的序列号。。​查询的类型,例如简单查询(SIMPLE)、主查询(PRIMARY)、子查询(SUBQUERY)、派生表查询(DERIVED)等。type​,即MySQL决定如何查找表中的行。

2025-12-26 10:26:26 841

原创 在Java中,从List A中找出List B没有的数据(即求差集)

对于小数据量或初学者,使用循环遍历易于理解。对于常规数据量且追求代码简洁性Stream API是非常好的选择。当处理大数据量时,HashSet优化法能显著提升性能。使用removeAll​ 方法时,务必注意它会修改原集合。如果不希望原集合被修改,应先创建副本。

2025-12-25 20:08:45 259

原创 Spring Boot 与 Apache POI 实现复杂嵌套结构 Excel 导出

实际业务中,我们常遇到的数据关系。例如,一个主实体包含多个一级子项,每个一级子项又包含多个二级子项。传统平面表格难以直观展示这种层次关系,需要和来优化可读性。

2025-12-25 14:33:40 229

原创 Feign调用添加重试机制

本文介绍了5种实现Feign客户端重试机制的方法:1)使用SpringRetry框架,通过注解和配置实现;2)自定义重试器,手动控制重试逻辑;3)采用Resilience4j框架,提供更强大的容错能力;4)通过自定义异常处理实现重试;5)使用拦截器方式手动控制重试流程。这些方法都支持设置重试次数、间隔时间等参数,其中SpringRetry和Resilience4j两种方案功能较为完善,推荐优先使用。开发者可根据项目需求选择适合的重试策略,提升微服务调用的可靠性。

2025-12-24 15:57:22 101

原创 SQL窗口函数(使用场景)

窗口函数在大量数据上可能较慢,合理使用分区。:ORDER BY子句中的字段建议有索引。:明确指定ROWS或RANGE避免歧义。

2025-12-16 15:34:07 139

原创 EasyPOI 大数据导出

建议在方法中添加try-catch,避免单页失败导致整个导出失败。:使用SXSSFWorkbook,不会将所有数据加载到内存。:EasyPOI会自动循环调用。参数从1开始,每次调用自动递增。:当返回空列表时,导出自动结束。:导出完成后一定要调用。

2025-12-15 16:16:53 270

原创 computeIfAbsent:数据合并工具类

【代码】computeIfAbsent:数据合并工具类。

2025-12-11 16:10:19 98

原创 匹配第一个出现的数字开头的字符串,后面可以包含 +、-、数字、字母(大小写)。

大小写字母(0次或多次)

2025-12-04 15:47:33 146

原创 定时器多节点部署,导致保存数据重复(分布式锁)

方案优点缺点适用场景数据库分布式锁​实现简单,依赖少性能一般,可靠性需自行保证小型项目,数据库压力不大,任务不频繁Redis 分布式锁​性能高,可靠性高(推荐)​需要引入 Redis大多数互联网应用的首选,任务频繁调度框架​功能最全,最专业(强推)​架构最重,需要部署中心复杂的调度需求,需要可视化管理和故障转移业务状态控制​无额外组件,性能好对业务模型有特定要求业务数据模型恰好支持此模式的场景如果项目处于早期,任务不复杂,可以选择方案一或方案二,其中方案二(Redis)

2025-12-03 16:26:51 644

原创 多线程 submit、execute 与 @Async 详解及完整代码

Spring项目,需要简单的异步执行,与框架深度集成。:需要获取支付结果进行后续业务(库存扣减、积分计算):发送邮件不需要等待结果,即使失败也不影响主流程。可通过AsyncConfigurer统一处理。​ - 可以捕获和处理执行异常。Spring项目中的异步任务。void 或 Future。Future(有返回值)异常封装在Future中。:用户注册后发送欢迎邮件。​ - 主线程不会阻塞。​ - 复用线程资源。void(无返回值)

2025-12-03 15:08:10 279

原创 使用 poi-tl 生成 Word 文档并上传到 Minio

服务将自动生成Word报告并上传到Minio。生成人员: {{author}}返回包含文件路径的JSON响应。报告日期: {{date}}{{members}}姓名。

2025-12-02 10:42:49 335

原创 先按电压类型(直流优先于交流)排序,同类型下再按电压数值从高到低排序。

±1100kV (直流, 数值最大)直流500kV (直流)±800kV (直流)交流220kV (交流, 数值最大)交流110kV (交流)交流35kV (交流)交流10kV (交流)直流750V (直流, 但数值以V为单位,可能需注意单位统一)请注意"直流750V"中的单位是V(伏特),而其他都是kV(千伏)。代码在提取数字时,"750V"会变成750.0,但kV单位的数值(如10.0)代表10千伏,即10000伏特。因此,在数值比较时,750.0会远小于10.0,导致它排在很后面。

2025-12-02 09:49:08 273

原创 根据每个键对应的列表里所有实体的 count 最大值,将整个字典从大到小重新排列

count为了更直观地理解,我们来看一个例子。假设原始的如下:key(字符串)value(List<MyEntity> 中各实体的 count 值)列表中的最大 count"A"5"B"[count=10]10"C"7执行代码后,新的中的键值对顺序将是:key(字符串)排序依据(列表最大count)"B"[count=10]10"C"7"A"5。

2025-12-02 09:45:30 280

原创 XXL-JOB分布式任务调度平台搭建指南

调度中心(管理后台):公共依赖包:执行器示例。

2025-11-27 20:57:32 357

原创 获取某个字段时间最新的一条数据

要使用函数获取每个user_name最新的一条数据,其核心思路是。具体的写法会因数据库系统略有不同,以下是两种主流写法。

2025-11-27 19:53:01 570

原创 基于任意给定的基准日期来计算其昨天、当天和明天的时间范围。

基于基准日期的日期范围计算核心方法是使用来对基准日期进行偏移。

2025-11-25 19:59:12 114

原创 导出时间设置

【代码】导出时间设置。

2025-11-25 15:11:31 87

原创 双节点部署WebSocket问题分析与解决方案

这样优化后的系统可以支持多节点部署,所有节点通过Redis实现数据同步和消息分发,确保WebSocket连接的全局一致性和消息的可靠传递。│ ├── nginx.conf # 主配置文件。├── conf\ # 配置文件目录。├── html\ # 静态文件目录。├── logs\ # 日志文件目录。: 通过Redis频道实现消息的全局广播和单播。: 设置Redis键的过期时间,防止僵尸连接。: http://[你的IP地址]:80。

2025-11-12 16:51:09 1028

原创 Spring Boot + WebSocket完整实现示例

【代码】【无标题】

2025-11-12 16:19:08 132

原创 windows系统启动redis报错

在启动 Redis 时遇到了的错误,这通常意味着 Redis 服务无法成功绑定到指定的 IP 地址和端口(127.0.0.1:6380)。

2025-11-10 14:27:15 269

原创 JWT 用于身份认证和授权的、具有防篡改能力的数字令牌

JWT 的全称是 JSON Web Token。它本质上是一个字符串,由三部分组成,用点​​Header(头部)​​: 描述令牌的类型和签名算法。好比在会员卡上写着“本卡使用V3.0防伪技术”。​​Payload(负载)​​: 这是核心,里面包含了你想要传递的“声明”(用户信息、权限、过期时间等)。好比会员卡上印着的会员号会员级别有效期。​​注意:​​ 这部分信息是​​Base64编码的,并非加密​​。所以​​绝对不能在里面放密码等敏感信息​​。​​Signature(签名)​。

2025-10-22 10:39:48 433

原创 MyBatis 中 @InterceptorIgnore注解的作用。

​ 这个拦截器就像一个“关卡”或者“监控摄像头”,每当 MyBatis 要执行一个 Mapper 接口中的方法(最终对应一条 SQL)时,这个拦截器都会被触发,执行你定义的记录日志逻辑(在。​ 当 MyBatis 执行这个被注解标记的方法时,它会“看到”这个注解,并知道:“哦,这个方法要求忽略某些拦截器”。​ 如果使用拦截器实现基于租户 ID 的数据过滤,对于某些需要访问所有租户数据的超级管理员方法,可以排除这个过滤拦截器。比如,你可以指定只有当拦截器的。​时使用的,用来排除某些方法不被特定的拦截器拦截。

2025-10-22 09:55:21 575

原创 MQ的使用场景

​​当你不想让系统A的稳定性和性能被系统B、C、D拖累时​​(解耦)。​​当你想让用户更快地拿到响应,而把耗时的活儿放在后台慢慢干时​​(异步)。​​当你需要应对像秒杀、抢票那样的瞬时巨大流量时​​(削峰)。​​当你需要让多个系统之间的数据保持同步时​​(数据同步)。​​当你需要实现定时任务、广播通知、保证顺序等复杂业务逻辑时​​。

2025-10-22 09:09:19 517

原创 @Valid校验 -(Spring 默认不支持直接校验 List<@Valid Entity>,需用包装类或手动校验。)

/ 业务逻辑} MyEntity中某个参数没有传入,也没有提示,参数有加@NotNull注解在 Spring Boot 中,直接对使用@Valid验证时,集合内元素的校验可能不会自动触发。

2025-10-17 10:05:15 295

原创 stream使用

List<ImportDTO> importList 转成 List<MathDTO> mathList。

2025-09-26 14:39:55 144

原创 easypoi导出

name​try {// 创建表头列表// 第一行表头:基础信息headerList.add(new ExcelExportEntity("姓名", "name"));headerList.add(new ExcelExportEntity("性别", "gender"));// 第一行表头:数学相关参数(合并3列)ExcelExportEntity mathHeader = new ExcelExportEntity("数学相关参数", "math");// 合并3列。

2025-09-26 14:33:49 407

原创 使用Python拆分DataFrame:将单行数据扩展为多行

在数据处理和分析过程中,我们经常会遇到需要将单行数据拆分成多行的情况。特别是在处理时间序列数据、版本对比数据或者多状态数据时,这种需求尤为常见。本文将介绍一个通用的Python函数,可以帮助您轻松实现DataFrame的拆分操作。

2025-08-28 16:52:08 258

原创 Spring Boot 连接 Consul 和使用 Feign 的完整指南

Spring Boot 启动后,自动向 Consul 注册(/swaggertest/health/custom-health 健康检查)。Spring Cloud Consul 可以自动将 Spring Boot 服务注册到 Consul,并实现服务发现。无需额外配置,Consul 会自动提供可用的服务实例列表。Feign 是 Spring Cloud 提供的。Consul 是一个服务网格解决方案,提供。,可以像调用本地方法一样调用远程服务。,服务会自动注册到 Consul。Feign 默认集成了。

2025-06-13 15:24:26 594

原创 redis实践运用(超详细版)

Spring Boot 集成 Redis 配置与应用 本文介绍了 Spring Boot 项目中集成 Redis 的完整方案,包含以下核心内容: 依赖配置:通过 spring-boot-starter-data-redis 引入 Redis 支持 Redis 配置: 连接池参数配置(Lettuce) 自定义 RedisTemplate 实现 JSON 序列化 支持 String/JSON 类型的 Key 和 Value RedisUtil 工具类: 封装了五种数据结构的操作

2025-06-11 14:16:55 781

原创 Idea提交代码到gitLab仓库报错ssh_exchange_indentification Connection closed by remote host fatal:could not rea

窗口的左侧显示的是【<本地分支名称> -> <提交方式>:<远程分支名称>】,将<提交方式>改成Manage Remotes点击新增"http"方式。2、在Manage Remotes点击新增,名称随意取,这里取"http",然后输入刚刚复制的“使用HTTP克隆”的Git地址。1、进入gitLab中相关服务,点击克隆,有“使用SSH克隆”和“使用HTTP克隆”,复制“使用HTTP克隆”的Git地址。Idea点击Git-->Manage Remotes-->Idea点击Git-->

2025-03-26 10:21:27 228

原创 MapStruct 拷贝(详细版)

工具性能特点适用场景MapStruct非常快编译时生成映射代码,避免反射开销高性能、大型项目、类型安全较慢使用反射进行属性拷贝,性能开销较大简单场景、不关注性能的小项目中等基于反射,但有优化Spring 项目,简易的对象映射BeanCopier很快使用字节码生成,避免了反射的性能瓶颈高性能、大量数据拷贝@Mapping注解是MapStruct框架中的一个核心注解,用于定义源对象与目标对象之间的字段映射关系。

2025-02-13 15:05:09 1190 1

原创 将一个Excel文件中的数据每1000条划分为一个新的Excel文件

要将一个Excel文件中的数据每1000条划分为一个新的Excel文件,最后剩余的数据(不足1000条)也保留为一个新的Excel文件,可以使用Python的库来实现。支持高效的数据处理和Excel文件的读取/写入。下面是一个完整的示例代码,演示了如何实现这个需求:首先确保安装了和,后者是用来处理Excel文件的引擎:示例代码代码解析 读取Excel文件:定义分割大小:计算需要分割成多少个文件:分割数据并保存:输出文件名:假设输入的 中有 2500 行数据:Excel表格大小:如

2024-11-25 17:54:15 969

原创 3.使用 Callable 接口与 Future

Callable与Future适合需要获取结果或处理异常的并发任务,但引入了性能开销、阻塞、复杂性和死锁风险等问题。适当使用时能提高代码的灵活性和可控性,但不当使用可能导致系统效率低下或代码混乱。

2024-11-19 13:54:56 1257

原创 0、多线程详解

多线程(Multithreading)是指在一个程序中同时执行多个线程的技术。线程是程序执行的最小单位,是程序执行流的基本单元。在现代操作系统中,程序一般由一个或多个线程组成。多线程使得一个程序能够同时执行多个任务,从而提高程序的执行效率,特别是在进行耗时操作时,如IO、网络请求、图像处理等。继承Thread类:适用于线程行为简单的情况,但不支持多重继承。实现Runnable接口:适用于线程行为比较复杂的情况,并且可以实现多重继承。使用Callable接口与Future。

2024-11-18 14:10:49 1145

原创 2.实现Runnable接口,重写run()方法

这样可以让你将任务与线程分离,从而使得任务可以被多次重用,或者可以在不同的线程池中执行。线程的创建、管理以及任务的执行是分开处理的,这让您的代码结构更加清晰、灵活,便于修改和维护。接口的优点之一是它可以让你更容易地管理和控制多个线程,特别是当需要多个线程执行相同任务时。时,任务的执行与线程池的管理是分开的。方法时,Java 会将你的线程任务与线程对象分离,这样可以更灵活地管理线程。线程池的设计依赖于将任务传递给线程池,而不是直接管理线程的创建和启动。接口时,任务的执行和线程的管理是分开的。

2024-11-18 10:48:07 1462

原创 excel生成随机数

在 Excel 中生成某个数据范围里的随机数,可以使用RAND或函数,具体根据你的需求选择合适的方法。

2024-11-14 16:58:08 4491

原创 gitlab里面的token的填到idea中(拉取代码的时候提示)

自动跳转会自动跳转到访问令牌页面,自动选好所需全需,如果没有可以按需生成令牌。搜索 "Version Control" -> "GitLab" ->自动跳转到gitlab中生成token的地址。进入 "设置"(Settings)。打开 IntelliJ IDEA。删除过期token。

2024-11-08 13:53:40 8698

原创 Windows系统搭建ELK日志收集(详细版)

ELK(Elasticsearch, Logstash, Kibana)是一个强大的开源数据分析和可视化平台,主要用于日志数据的收集、存储、分析和可视化。ELK在日志管理、监控、分析和故障排查等方面有广泛的应用。

2024-11-06 15:56:07 2363

原创 在Excel中,确保某个单元格的内容严格包含在某一列内,并且获取同行的数据

这个公式会根据 A1 的内容在 B 列中的存在与否,决定是否在 D1 中显示对应行的 C 列数据。选取的列一直在根据单元格的变化而变化,这样对我们的结果肯定是有影响的。假设 A1 是要查找的内容,B 列是包含可能值的列,C 列是要获取数据的列。这个公式会返回 "Exists" 表示 A1 的内容在列 B 中存在,返回 "Not Found" 表示不存在。:在列 B 中查找 A1 的内容,返回位置,如果找不到则返回错误。这个公式首先会判断 A1 的内容是否在列 B 中,如果是,则用。:在列 C 中,使用。

2024-08-08 15:15:13 4926 2

Python与MinIO结合使用Flask上传与下载文件的完整指南

内容概要:本文档详细介绍了如何在Python中使用MinIO对象存储服务进行文件的上传和下载操作,特别是在Flask Web应用中集成MinIO客户端的具体步骤和示例代码,包括环境搭建、模块引入、函数实现、异常处理以及安全性和兼容性的考虑,如处理URL编码、MIME类型等细节。 适合人群:具备基本Python编程能力的开发者,特别是正在从事Web开发或对MinIO对象存储有兴趣的技术人员。 使用场景及目标:本文提供的解决方案适用于任何需要高效管理大量文件的应用场景,比如云存储服务、在线图片视频分享平台、备份系统等,帮助开发者快速构建稳定可靠的文件管理接口。 阅读建议:建议边读边实践文中给出的例子代码,同时注意检查是否符合自己的具体业务需求(如不同操作系统下的路径规则、自定义域名支持),以便做出适当的调整优化。遇到问题时可以参考官方文档或相关社区论坛求助。

2024-11-22

0、多线程详解 多线程(Multithreading)是指在一个程序中同时执行多个线程的技术

0、多线程详解 多线程(Multithreading)是指在一个程序中同时执行多个线程的技术

2024-11-18

GDAL-3.4.1-cp39-cp39-manylinux-2-5-x86-64.manylinux1-x86-64.whl

具体说明: GDAL 3.4.1:这是 GDAL(Geospatial Data Abstraction Library) 的一个版本,GDAL 是一个开源库,广泛用于处理和转换地理空间数据(例如栅格和矢量数据)。 cp39:表示这个 Wheel 文件是为 Python 3.9 版本编译的。 manylinux_2_5 和 manylinux1:这表明这个文件是为符合 manylinux 规范的 Linux 系统构建的。manylinux 规范确保 Python 库可以在多个 Linux 发行版上顺利安装,因此这个 Wheel 文件适用于各种支持该标准的 Linux 系统。 x86_64:表示这是为 64 位架构 的操作系统构建的,适用于大多数现代计算机系统。 主要用途: GDAL 库用于地理信息系统(GIS)中的数据处理,特别是在栅格和矢量数据的读取、写入、转换、重投影和空间分析方面。它广泛支持不同的地理空间数据格式,如 GeoTIFF、Shapefile、KML 等等。

2024-11-06

GDAL-3.3.3-cp39-cp39-manylinux-2-5-x86-64.manylinux1-x86-64.whl

GDAL-3.3.3-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.whl 是一个 Python Wheel 文件,专门用于安装 GDAL 版本 3.3.3 的 Python 包。这个文件适用于以下条件: Python 3.9:文件名中的 cp39 表明它是为 Python 3.9 版本编译的。 操作系统平台:文件中的 manylinux 说明它是为符合 manylinux 规范的 Linux 系统构建的,适用于许多不同的 Linux 发行版。 64-bit 架构:x86_64 表示该文件适用于 64 位架构的操作系统。 该文件的作用: GDAL(Geospatial Data Abstraction Library)是一个开源的库,用于处理和转换地理空间数据(如栅格图像和矢量数据)。它支持多种地理数据格式,例如 GeoTIFF、Shapefile、KML 等等。GDAL 是很多地理信息系统(GIS)工具和 Python 库(如 rasterio、geopandas 等)底层的依赖库。

2024-11-06

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除