MybatisPlus更新時部分失敗的問題解決
1 問題模擬
1 添加依賴
在spring環(huán)境添加下面依賴包,如springboot環(huán)境,則添加另一個依賴包.
spring環(huán)境
<dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus</artifactId> <version>3.4.0</version> </dependency>
springboot環(huán)境
<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 模擬調(diào)用
@Test public void testUpdateById(){ // 參數(shù)從前端傳遞,此處模擬獲取 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 查詢結(jié)果
SQL語句目標: 將id為1111的對應的表字段更新為我們設置的值.
執(zhí)行結(jié)果: 發(fā)現(xiàn)id為1111的數(shù)據(jù),其他信息都進行了修改,備注和分數(shù)字段沒有被修改.不符合我們的目標要求.
2 問題分析
根據(jù)上述問題分析,懷疑是不是配置有問題,導致數(shù)據(jù)沒有更新成功.
官網(wǎng)簡介:MyBatis-Plus (baomidou.com)
查詢了一下官網(wǎng)信息:
在mybatis-plus 配置文件后,有個global-config 全局配置,里面配置了更新、插入策略。
全局策略有:
- IGNORED:忽略
- NOT_NULL:非 NULL,默認策略
- NOT_EMPTY:非空
關(guān)于mybatis-plus插入或更新的字段有 空字符串 或者 null 時,默認是不進行更新數(shù)據(jù)庫的.
此外,還能對單個字段進行插入或更新設置.
關(guān)聯(lián)的字段策略有:
- 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 問題總結(jié)
關(guān)于mybatis-plus更新時部分字段失敗的問題, 查看官方文檔后,很容易知道問題在哪里,修改起來也很方便. 對于未知的新技術(shù),需要多多去學習和關(guān)注官方文檔,才能更好的使用它.
到此這篇關(guān)于MybatisPlus更新時部分失敗的問題解決的文章就介紹到這了,更多相關(guān)MybatisPlus更新失敗內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SpringBoot+Eureka實現(xiàn)微服務負載均衡的示例代碼
這篇文章主要介紹了SpringBoot+Eureka實現(xiàn)微服務負載均衡的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-11-11在Java中避免NullPointerException的解決方案
這篇文章主要介紹了在Java中避免NullPointerException的解決方案,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-04-04Java數(shù)據(jù)結(jié)構(gòu)之二叉搜索樹詳解
二叉搜索樹作為一個經(jīng)典的數(shù)據(jù)結(jié)構(gòu),具有鏈表的快速插入與刪除的特點,同時查詢效率也很優(yōu)秀,所以應用十分廣泛。本文將詳細講講二叉搜索樹的原理與實現(xiàn),需要的可以參考一下2022-06-06Spring Boot項目利用Redis實現(xiàn)集中式緩存實例
本篇文章主要介紹了Spring Boot項目利用Redis實現(xiàn)集中式緩存實例,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-06-06springboot?log4j2.xml如何讀取application.yml中屬性值
這篇文章主要介紹了springboot?log4j2.xml如何讀取application.yml中屬性值問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-12-12