本文以 SystemUserMapper 和 SystemUserService 为实战案例,系统讲解 MyBatis-Plus 高级查询的三种核心技巧:
注解式 SQL:通过 @Select 注解配合 ${ew.customSqlSegment} 占位符,无需 XML 即可实现动态条件拼接
Lambda 条件构造器:使用 LambdaQueryWrapper 替代字符串字段名,利用 like、eq 等方法构建类型安全的条件,配合 Hutool 的 StrUtil 实现动态条件过滤
JSON 字段查询:通过 wrapper.apply() 方法拼接 JSON_EXTRACT 函数,实现 JSON 字段值的精准匹配,多个 apply 自动用 AND 连接
泛型分页:IPage<Entity> 作为参数和返回值,与 MyBatis-Plus 分页插件无缝集成
通过本文,你将掌握如何在不编写 XML 的前提下,优雅地实现包含模糊查询、非空判断、JSON 字段提取等复杂场景的动态分页查询。
在日常使用 Git 的过程中,有时需要修正最后一次提交的日期(例如因时间戳不准确导致 CI/CD 流水线记录异常,或为了保持提交时间与实际开发时间一致)。本文提供最简洁的操作指南:通过 git commit --amend --date 命令修改本地最后一次提交的日期,并使用 git push -f 强制覆盖远程分支。同时附上 Vim 编辑器的基本操作说明(插入模式、保存退出)及强制推送的风险提示。
OpenKruise 是阿里云开源的 Kubernetes 增强组件,提供原地升级、Sidecar 容器管理、高级发布策略等原生 Kubernetes 不具备的能力。本文基于 K8s 1.30.1 版本,详细介绍 OpenKruise 1.8.0 的完整安装与验证流程。
核心内容包括:
环境准备:提前安装 Helm 并配置国内源,下载 OpenKruise 离线镜像包(a1e4d262ffb0.tar)及 Helm Chart 包(kruise-1.8.0.tgz)
安装部署:通过 docker load 导入镜像,使用 helm install 命令完成 Kruise 组件安装
部署验证:使用 helm list、helm status、kubectl get pod 等命令确认组件运行状态
功能测试:提供完整的 StatefulSet 测试 YAML,展示 OpenKruise 核心特性:
apps.kruise.io/v1beta1 API 版本扩展podUpdatePolicy: InPlaceIfPossible)readinessGates 中的 InPlaceUpdateReady)partition 控制更新范围)本文适用于需要在 Kubernetes 集群中引入高级工作负载管理能力的运维和开发人员。
从 MySQL 5.x 迁移到 MySQL 8.0 后,部分原本正常的 SQL 查询可能返回空结果。根本原因是 MySQL 8.0 对 SQL 标准的遵循更加严格:NULL 代表“未知值”,任何与 NULL 的比较(包括 =、!=、<>)结果都是 NULL(假),而非 TRUE。因此 WHERE status != 'complate' 无法筛选出 status IS NULL 的数据行。本文通过示例表格对比六种查询条件对 NULL 值的处理结果,并给出两种解决方案:使用 IS NOT NULL 显式判断(WHERE status IS NOT NULL AND status != 'complate'),或将字段设置为 NOT NULL 并赋予默认值。
本文适用于从 MySQL 5.x 迁移到 8.0 后遇到查询异常的开发与运维人员。
Windows 10 用户在复制或移动文件时,偶尔会遇到进度卡在 99% 的现象,此时资源管理器无响应且 CPU 占用率极高。本文分析问题原因为:长时间使用电脑导致文件夹资源管理器的历史记录和缓存冗余垃圾过多,干扰了正常的文件系统操作。解决方案为:进入任意文件夹 → 点击"查看"选项卡 → 右侧"选项"按钮 → 在"隐私"选项卡中,分别单击"清除"(清除文件资源管理器历史记录)和"还原默认值"(重置文件夹视图设置),点击确认并应用后即可恢复正常。
本文适用于遇到 Windows 文件操作卡顿问题的普通用户与运维人员。