MybatisPlus 不修改全局策略和字段注解如何将字段更新为null_java

来源:脚本之家  责任编辑:小易  

mybatis-plus 以下简称mp,目前应该也算是主流的一款数据访问层应用框架。源于其对mybatis 的近乎完美的封装,让我们在使用的时候无比的顺滑, 几乎提供了所有单表操作的方法,大大提升了效率。并且这款框架还是国产的哦,没了解过的可以去了解一下。 

回归正题,我们这次来讲一下,怎么样通过mp将数据库中的一个字段更新为null. 可能很多人会觉得奇怪,更新为null, 直接set field = null 不就可以了。这里大家要注意一下,一般情况,我们在使用mp的时候,他的默认策略是空不更新, 这个也是非常主流和常见的一种设置。 为什么这么说呢, 比如我们将一个user表中的  del_flag 设置为1,  一般情况我们只需这么做就行:

User user = new User();
 
user.setId(1);
 
user.setDelFlag(1);
 
userService.update(user);

这个时候,其实其他的字段都是空,如果他的策略是空更新,那么执行之后,表里就只有id 和del_flag有值,其余的字段都是Null,很明显这不是我们想要的结果,这就是默认的空不更新策略。

这个时候就出现了一个痛点,必须我是需要把表中的某个字段更新为空,那应该怎么做的?

一是我们将全局更新策略设置为空可以更新

二是将这个字段设置为空可以更新。

这两种方式都是我极力不推荐的,大家也尽量不要使用这两种方法,真的非常危险,有可能导致别人在调用更新方法的时候不小心就把你的某些字段置为null 了。

这里推荐一种方法,也是官网给出的,但是必须要求mp的版本 大于3, 如果是3以下的版本没有这个功能,就是使用UpdateWrapper.

比如,我们想把  user表中的gender设置为空: 

LambdaUpdateWrapper<User> wrapper = new LambdaUpdateWrapper<>();
 
wrapper.set(User::getGender(), null);
 
wrapper.eq(User::getId(), 1);
 
userService.update(wrapper);
通过UpdateWrapper 可以设置null.

官网说明: 

地址: https://mp.baomidou.com/guide/faq.html#%E6%8F%92%E5%85%A5%E6%88%96%E6%9B%B4%E6%96%B0%E7%9A%84%E5%AD%97%E6%AE%B5%E6%9C%89-%E7%A9%BA%E5%AD%97%E7%AC%A6%E4%B8%B2-%E6%88%96%E8%80%85-null

到此这篇关于MybatisPlus 不修改全局策略和字段注解如何将字段更新为null的文章就介绍到这了,更多相关MybatisPlus将字段更新为null内容请搜索真格学网以前的文章或继续浏览下面的相关文章希望大家以后多多支持真格学网!

您可能感兴趣的文章:在MyBatisPlus中使用@TableField完成字段自动填充的操作mybatisplus的公共字段插入的实现解决mybatisPlus null 值更新的问题

  • 本文相关:
  • struts2 中文乱码的解决办法分享
  • java中的对象流总结(必看篇)
  • java源码解析之genericdeclaration详解
  • java开发微信公众号支付
  • spring boot maven插件使用详解
  • 详解java中的6种单例写法及优缺点
  • spring boot 整合 tkmybatis 二次简化持久层代码的实现
  • spring cache的基本使用与实现原理详解
  • hibernate之环境搭建及demo分享
  • 深入浅析springboot中的自动装配
  • Mybatis,对象中某属性为null时,不要更新数据库中...
  • mybatis 更新表操作时插入null的问题
  • MyBatis update语句问题(注解方式)
  • Mybatis中sql更新可以设置为空值么
  • 如何实现MyBatis仅更新SQL语句中指定的字段
  • mybatis-plus model属性@TableField(exist = false...
  • mybatisplus 怎么修改数据
  • mybatis想给其中某个字段赋成null,mapper层怎么判...
  • mybatis注解怎么解决字段名与属性名不同的问题
  • mybatis怎么修改字段为空
  • 网站首页网页制作脚本下载服务器操作系统网站运营平面设计媒体动画电脑基础硬件教程网络安全c#教程vbvb.netc 语言java编程delphijavaandroidiosswiftscala易语言汇编语言r语言其它相关首页在mybatisplus中使用@tablefield完成字段自动填充的操作mybatisplus的公共字段插入的实现解决mybatisplus null 值更新的问题struts2 中文乱码的解决办法分享java中的对象流总结(必看篇)java源码解析之genericdeclaration详解java开发微信公众号支付spring boot maven插件使用详解详解java中的6种单例写法及优缺点spring boot 整合 tkmybatis 二次简化持久层代码的实现spring cache的基本使用与实现原理详解hibernate之环境搭建及demo分享intellij idea 2020最新激活码(亲java使double保留两位小数的多方intellij idea 2020.2.3永久破解java8 十大新特性详解idea2020.2.2激活码与intellij ijava.net.socketexception: conn2020.2 intellij idea激活与ideaidea 2020版本最新破解教程可激活java写入文件的几种方法分享java 十六进制与字符串的转换java 8新增的方法参数反射实例分析手把手教你从零设计一个java日志框架java内存模型知识详解java分页之假分页实现简单的分页器详解java封装实现excel建表读写操作java 对象的序列化和反序列化详细介绍java文件读写io/nio及性能比较详细代码及java实现ip地址和int数字的相互转换jaxb命名空间及前缀_动力节点java学院整理基于java 注解(annotation)的基本概念详解
    免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved