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();
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构