Mybatis-plus3.0 更新字段为 null

Mybatis-plus3.0 更新字段为 null

在3.0之前如果想更新数据库的字段为 null 值,大多通过实体类上添加注解实现 ,存在一定的风险,亦或者手动写 sql 。在 3.0 + 后提供了UpdateWrapper`更新条件构造器来实现字段置 null 值、空字符串的操作。

1、创建更新条件构造器

在这里我要置 age 的值为 null。

//第一种:new对象,字段多时使用
User user = new User();
user.setName("test");
UpdateWrapper<User> wrapper = new UpdateWrapper<>();
wrapper.set("age", null).eq("id",1294183513728778246L);

//第二种,直接在构造器上更新字段及拼接条件
UpdateWrapper<User> wrapper = new UpdateWrapper<>();
wrapper.set("age", null).set("name", "test").eq("id",1294183513728778246L)

2、使用并打印结果

通过mapper.update()方法使用构造器。

//第一种
int count =  userMapper.update(user,wrapper);

//第二种
int count =  userMapper.update(null,wrapper);

输出结果如下

image-20201217151143513

可以看到 age 的值成功置为 null 了。

3、注意点

如果要更新 id的值,只能通过构造器上 set更新字段实现。

即通过 UpdateWrapper()set()方法。

user.setName("test");
wrapper.set("age", null).set("id",1294183513728778246L).eq("id",1)

输出结果如下

image-20201217152416529

通过 new 对象 set Id 无效

user.setName("test");
//set Id 无效
user.setId(1294183513728778246L);
wrapper.set("age", null).eq("id",1);

输出结果如下

image-20201217152848464

posted @ 2020-12-17 15:34  MyDistance  阅读(5714)  评论(0编辑  收藏  举报