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