zoukankan      html  css  js  c++  java
  • 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

    自我控制是最强者的本能-萧伯纳
  • 相关阅读:
    JAVA中字符串比较equals()和equalsIgnoreCase()的区别
    JAVA字母的大小写转换
    对于java线程的理解
    JAVA实现文件导出Excel
    处理数据库中的null值问题
    POJO、JAVABean、Entity的区别
    Mybatis的choose标签使用
    redis详解
    Spring框架基础解析
    利用 BackgroundService 固定时间间隔执行某动作
  • 原文地址:https://www.cnblogs.com/CF1314/p/14149953.html
Copyright © 2011-2022 走看看