解决MyBatis-Plus updateById更新NULL值失败:UpdateWrapper与全局配置详解

本文详细解析MyBatis-Plus中updateById()方法默认忽略NULL值导致更新失败的问题。通过对比UpdateWrapper手动Set方式与全局/字段级配置策略,深入分析为何更改全局更新策略可能导致原有业务逻辑被覆盖风险,并提供反射处理及自定义SQL作为补充方案,帮助开发者根据实际场景选择最安全的更新策略。

解决MyBatis-Plus updateById更新NULL值失败:UpdateWrapper与全局配置详解

Spring Boot中使用MyBatis-Plus与ThreadLocal自动填充公共字段

本文详解在Spring Boot项目中如何利用MyBatis-Plus的元数据对象处理器(MetaObjectHandler)实现createTime、updateTime等公共字段的自动填充。针对更新操作中需动态获取当前登录用户ID的需求,深入解析并实践通过ThreadLocal结合过滤器(Filter)进行线程间数据共享的方案,从而替代冗余的手动赋值代码,提升开发效率与代码整洁度。

Spring Boot中使用MyBatis-Plus与ThreadLocal自动填充公共字段

MyBatis-Plus 实现时间范围查询的正确姿势与安全规范

本文详解 MyBatis-Plus 中时间范围查询的两种核心方式:利用 apply 方法配合数据库函数处理日期截取,以及使用 ge/le 直接比较 DateTime 字段。重点剖析 String 拼接导致的 SQL 注入风险并提供参数化正例,同时讲解 Spring MVC 中 @DateTimeFormat 对前后端时间格式一致性的要求及常见报错排查。

MyBatis-Plus 实现时间范围查询的正确姿势与安全规范

MyBatis-Plus 打印 SQL 语句的两种常用配置方法

在 MyBatis-Plus 开发中,查看 SQL 语句有助于排查数据问题。本文介绍两种主流配置方式:通过 log-impl 输出详细包含结果集的 SQL,以及通过 logging.level 仅记录执行语句与影响行数。提供 YAML 与 Properties 两种格式的配置文件写法,帮助开发者根据调试需求选择合适的日志粒度。

MyBatis-Plus 设置主键自增并获取生成 ID 的完整指南

本文详细介绍在 MyBatis-Plus 中如何配置主键自增策略并正确获取插入后生成的自增 ID。主要涵盖通过 @TableId 注解配置实体类、使用内置 insert 方法及自定义 SQL(@Options 或 @InsertProvider)三种获取 ID 的方式,以及 application.yml 中的全局配置,解决开发中常见的 ID 回写问题。

MyBatis-Plus 设置主键自增并获取生成 ID 的完整指南

MyBatis-Plus 更新操作的三种方式与 null 值处理方案

本文详解 MyBatis-Plus 中 update 更新的三种实现方式:基于主键的 updateById、使用 UpdateWrapper 条件更新及 Lambda 构造器类型安全更新。同时针对数据库字段为 null 时 SQL 缺失 SET 子句导致的语法错误,提供 IGNORED 策略或指定 JDBC 类型的解决方案。

MyBatis-Plus 更新操作的三种方式与 null 值处理方案

MyBatis-Plus Wrappers.ne 空指针异常排查与解决

在使用 MyBatis-Plus 的 Wrappers.ne() 进行条件查询时,若直接在参数中调用可能为 null 的对象方法,会因 Java 表达式求值机制导致 NullPointerException。即使传入 false 作为 condition 参数阻止 SQL 拼接,目标参数仍会被强制计算。正确做法是先对对象判空,再决定是否追加 .ne() 条件。

MyBatis-Plus 主键与字段映射:@TableId和@TableField用法详解

本文详细介绍MyBatis-Plus中核心注解@TableId和@TableField的用法。通过示例说明当实体类字段名与数据库列名不一致时,如何使用这两个注解进行显式映射。同时解析@TableId的value属性用于指定对应库表字段,以及type属性配置主键自增或雪花算法等生成策略。

MyBatis-Plus 主键与字段映射:@TableId和@TableField用法详解

Mybatis-Plus 解决 updateById 更新 null 值无效问题

在使用 Mybatis-Plus 进行数据更新时,若实体字段值为 null,默认策略下数据库不会变更该字段。本文详解通过配置全局 field-strategy 或在实体类字段上使用 @TableField(strategy = FieldStrategy.IGNORED) 注解,强制更新 null 值,解决前端清空字段后后端无法同步的问题。

Mybatis-Plus 解决 updateById 更新 null 值无效问题