mybatis-plus update更新操作的三种方式(小结)
作者:波神小波 时间:2023-10-08 14:05:08
目录
1.@ 根据id更新
2.@ 条件构造器作为参数进行更新
3.@ lambda构造器
mybatisplus update语句为null时没有拼接上去
1.@ 根据id更新
User user = new User();
user.setUserId(1);
user.setAge(29);
userMapper.updateById(user);
2.@ 条件构造器作为参数进行更新
//把名字为rhb的用户年龄更新为18,其他属性不变
UpdateWrapper<User> updateWrapper = new UpdateWrapper<>();
updateWrapper.eq("name","rhb");
User user = new User();
user.setAge(18);
userMapper.update(user, updateWrapper);
@ 假设只更新一个字段在使用updateWrapper 的构造器中也需要构造一个实体对象,这样比较麻烦。可以使用updateWrapper的set方法
//只更新一个属性,把名字为rhb的用户年龄更新为18,其他属性不变
UpdateWrapper<User> updateWrapper = new UpdateWrapper<>();
updateWrapper.eq("name","rhb").set("age", 18);
userMapper.update(null, updateWrapper);
3.@ lambda构造器
LambdaUpdateWrapper<User> lambdaUpdateWrapper = new LambdaUpdateWrapper<>();
lambdaUpdateWrapper.eq(User::getName, "rhb").set(User::getAge, 18);
Integer rows = userMapper.update(null, lambdaUpdateWrapper);
mybatisplus update语句为null时没有拼接上去
我有一个设置页面,数据库就相当于是key和value的样子,当value为空的时候用updatebyId就变成了
update param where key=?
就没有set就会报语法错误
这个出现的场景是如果数据库本来改自己有值更新 null时不会有问题,当数据库也是null时更新就不会拼接set
数据库有值时update null
数据库也为空时的更新
然后查解决方案:mybatisplus为null的时候不会拼接,可配置一个策略updateStrategy = FieldStrategy.IGNORED无论是啥都会拼接 但是还是会有问题,指定下类型就可以了 最后经测试有两种方案可行
@TableField(value = "PARAMVAL",updateStrategy = FieldStrategy.IGNORED,jdbcType = JdbcType.VARCHAR)
//@TableField(value = "PARAMVAL",jdbcType = JdbcType.VARCHAR, fill = FieldFill.UPDATE)
private String paramVal;
以上两种方案均可
来源:https://blog.csdn.net/weixin_44162337/article/details/107828366
标签:mybatis-plus,update
0
投稿
猜你喜欢
springboot集成swagger3与knife4j的详细代码
2023-11-27 18:22:58
线程局部变量的实现 ThreadLocal使用及场景介绍
2023-11-10 03:19:26
C#引用类型和值类型的介绍与实例
2022-08-11 16:24:34
SpringBoot项目中的多数据源支持的方法
2022-01-12 03:42:19
浅谈Java中各种修饰符与访问修饰符的说明
2022-10-07 00:49:52
Android模拟实现网易新闻客户端
2022-09-03 18:19:11
maven继承父工程统一版本号的实现
2023-01-27 09:19:49
基于静态Singleton模式的使用介绍
2022-09-13 20:11:08
Java线程池高频面试题总结
2023-10-22 02:12:34
详解java中jvm虚拟机栈的作用
2022-06-06 14:08:44
springboot-jta-atomikos多数据源事务管理实现
2022-08-29 19:45:47
JAVA读取文件夹大小的几种方法实例
2021-05-24 21:01:53
C#中FileStream的对比及使用方法
2023-10-17 21:09:41
java AOP原理以及实例用法总结
2022-11-05 03:30:41
Maven的几个常用plugin
2021-12-05 13:36:28
Java实现XML文件学生通讯录
2023-07-23 19:21:49
JetBrains IntelliJ IDEA 配置优化技巧
2022-06-19 08:31:38
C# 基础入门--关键字
2023-01-22 15:44:23
Spark内存调优指南
2022-07-28 09:22:25
Java 中 String,StringBuffer 和 StringBuilder 的区别及用法
2023-08-22 16:40:57