MybatisPlus更新时部分失败的问题解决
1 问题模拟
1 添加依赖
在spring环境添加下面依赖包,如springboot环境,则添加另一个依赖包.
spring环境
<dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus</artifactId> <version>3.4.0</version> </dependency>
springboot环境
<dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.4.0</version> </dependency>
2 添加实体对象
@Data @NoArgsConstructor @AllArgsConstructor @TableName("dev_student") // 表名 public class Student { // 主键 @TableId private String id; private String score; private String name; private Integer age; private Date creatTime; private String desc; }
3 模拟调用
@Test public void testUpdateById(){ // 参数从前端传递,此处模拟获取 Student student = new Student(); student.setId("1111"); student.setName("小明"); student.setAge(18); student.setCreatTime(new Date()); // 模拟前端更新 删除了备注信息 student.setDesc(""); // 模拟前端更新 将字段指为空传递 student.setScore(null); studentMapper.updateById(student); }
4 查询结果
SQL语句目标: 将id为1111的对应的表字段更新为我们设置的值.
执行结果: 发现id为1111的数据,其他信息都进行了修改,备注和分数字段没有被修改.不符合我们的目标要求.
2 问题分析
根据上述问题分析,怀疑是不是配置有问题,导致数据没有更新成功.
官网简介:MyBatis-Plus (baomidou.com)
查询了一下官网信息:
在mybatis-plus 配置文件后,有个global-config 全局配置,里面配置了更新、插入策略。
全局策略有:
- IGNORED:忽略
- NOT_NULL:非 NULL,默认策略
- NOT_EMPTY:非空
关于mybatis-plus插入或更新的字段有 空字符串 或者 null 时,默认是不进行更新数据库的.
此外,还能对单个字段进行插入或更新设置.
关联的字段策略有:
- IGNORED:忽略
- NOT_NULL:非 NULL,默认策略
- NOT_EMPTY:非空
- NEVER 从不更新,不管字段是否有值,都不进行更新
- DEFAULT 追随全局配置
问题解决
1 全局设置
mybatis-plus: global-config: db-config: update-strategy: IGNORED
2 字段设置
@Data @NoArgsConstructor @AllArgsConstructor @TableName("dev_student") public class Student { @TableId private String id; private String score; private String name; private Integer age; private Date creatTime; // 更新时 忽略 不做判空和null校验 @TableField(updateStrategy = FieldStrategy.IGNORED) private String desc; }
3 问题总结
关于mybatis-plus更新时部分字段失败的问题, 查看官方文档后,很容易知道问题在哪里,修改起来也很方便. 对于未知的新技术,需要多多去学习和关注官方文档,才能更好的使用它.
到此这篇关于MybatisPlus更新时部分失败的问题解决的文章就介绍到这了,更多相关MybatisPlus更新失败内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
IDEA中将SpringBoot项目提交到git仓库的方法步骤
本文主要介绍了IDEA中将SpringBoot项目提交到git仓库的方法步骤,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下2021-12-12JDK安装与配置超级详细教程(包含二个或多个JDK的同时安装)
这篇文章主要给大家介绍了关于JDK安装与配置(包含二个或多个JDK的同时安装)的相关资料,对于Java学习者来说,一台电脑拿到手肯定要配置JDK,但是对于新手来说还是容易出错,需要的朋友可以参考下2023-10-10
最新评论