mybatisplus按條件修改實體單個字段實現(xiàn)方式
mybatisplus按條件修改實體單個字段
在 MyBatis-Plus 中,按條件修改單個字段(而不是整條記錄),不要使用 updateById() 或傳入實體對象的方式,而應(yīng)使用 UpdateWrapper / LambdaUpdateWrapper 顯式指定要更新的字段和條件。
推薦方式
使用 LambdaUpdateWrapper(類型安全、清晰、高效)
場景示例
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
// 方式1:通過 Service 調(diào)用(推薦)
boolean success = userService.update(
Wrappers.<User>lambdaUpdate()
.set(User::getStatus, "ACTIVE") // 只更新 status 字段
.eq(User::getId, 1001) // WHERE 條件:id = 1001
);
// 生成的 SQL:
UPDATE user SET status = 'ACTIVE' WHERE id = 1001;
其他常見用法
// 1. 多條件 + 單字段更新
userService.update(
Wrappers.<User>lambdaUpdate()
.set(User::getStatus, "INACTIVE")
.eq(User::getAge, 18)
.likeRight(User::getName, "張") // name LIKE '張%'
.gt(User::getCreateTime, LocalDateTime.now().minusDays(7))
);
// 2. 使用 SQL 表達式(如自增、函數(shù)),setSql() 是直接拼接 SQL,確保值安全(避免 SQL 注入)。
// status = status + 1(適用于數(shù)值字段)
userService.update(
Wrappers.<User>lambdaUpdate()
.setSql("login_count = login_count + 1") // 注意:用 setSql()
.eq(User::getId, 1001)
);
// 3. 僅使用 Mapper(不通過 Service)
@Autowired
private UserMapper userMapper;
userMapper.update(null,
Wrappers.<User>lambdaUpdate()
.set(User::getStatus, "LOCKED")
.eq(User::getUsername, "admin")
);
// 第一個參數(shù)傳 null,表示不使用實體對象,完全依賴 Wrapper。常見錯誤(務(wù)必避免)

總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Springboot+Vue+axios實現(xiàn)文章收藏功能
這篇文章主要為大家詳細介紹了Springboot+Vue+axios實現(xiàn)文章收藏功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-08-08
SpringBoot+Vue.js實現(xiàn)前后端分離的文件上傳功能
這篇文章主要介紹了SpringBoot+Vue.js實現(xiàn)前后端分離的文件上傳功能,需要的朋友可以參考下2018-06-06
SpringBoot實現(xiàn)發(fā)布/訂閱廣播消息的示例代碼
在 RabbitMQ 的五大工作模式中,發(fā)布/訂閱(Publish/Subscribe)廣播模式是分布式系統(tǒng)中非常核心的通信方式,本文給大家介紹了SpringBoot實現(xiàn)發(fā)布/訂閱廣播消息的示例代碼,需要的朋友可以參考下2026-05-05
SpringBoot整合MybatisPlus的簡單教程實現(xiàn)(簡單整合)
這篇文章主要介紹了SpringBoot整合MybatisPlus的簡單教程實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-05-05
詳解Spring Kafka中關(guān)于Kafka的配置參數(shù)
這篇文章主要介紹了詳解Spring Kafka中關(guān)于Kafka的配置參數(shù),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-08-08
Java和Rust實現(xiàn)JSON序列化互轉(zhuǎn)的解決方案詳解
這篇文章主要為大家詳細介紹了Java和Rust實現(xiàn)JSON序列化互轉(zhuǎn)的解決方案,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-03-03

