MyBatisPlus根據ID修改對應的值,其他屬性不變.如何實現?


1.基本操作

// 修改訂單的狀態為已發貨和已支付
Order order = new Order();
order.setSend(1); // 已發貨
order.setPay(1); // 已支付
userMapper.updateById(order);

2.使用條件構造器

// 把名字為ly的用戶年齡更新為18,其他屬性不變
UpdateWrapper<User> updateWrapper = new UpdateWrapper<>();
updateWrapper.eq("name","ly");
User user = new User();
user.setAge(18);
userMapper.update(user, updateWrapper);

3.使用上面的方式我們還是得創建一個對象,有沒有辦法不創建對象呢? 有的

// 只更新一個屬性,把名字為ly的用戶年齡更新為18,其他屬性不變
UpdateWrapper<User> updateWrapper = new UpdateWrapper<>();
updateWrapper.eq("name","ly").set("age", 18);
// userMapper.update(null, updateWrapper);
userMapper.update(updateWrapper);

一行代碼優雅寫法

userMapper.update(Wrappers.<User>lambdaUpdate().eq(User::getName,"ly").set(User::getAge,18));

4.lambda構造器

LambdaUpdateWrapper<User> lambdaUpdateWrapper = new LambdaUpdateWrapper<>();
lambdaUpdateWrapper.eq(User::getName, "ly").set(User::getAge, 18);
userMapper.update(null, lambdaUpdateWrapper);

5.lambdaUpdate

 userService.lambdaUpdate().set(User::getAge, 18).eq(User::getName, "ly").update();


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM