MyBatis-Plus將字段修改為空值的解決方案
MyBatis-Plus如何將字段修改為空值
共有三種常用解決方案
方案一:修改全局更新策略(不推薦)
mybatis-plus: global-config: #字段策略 IGNORED:"忽略判斷"、NOT_NULL:"非NULL判斷"、NOT_EMPTY:"非空判斷" field-strategy: IGNORED
不推薦使用原因:作用范圍太廣,調(diào)用MyBatis-Plus封裝的update會(huì)不經(jīng)意將字段改為空
方案二:修改指定字段的更新策略(不推薦)
@TableField(strategy = FieldStrategy.IGNORED) private String name;
不推薦使用原因:相對(duì)于方案一作用范圍相對(duì)較小,但調(diào)用MyBatis-Plus封裝的update也會(huì)不經(jīng)意將字段改為空
方案三:使用LambdaUpdateWrapper只在特定需求下做處理(推薦)
Order order = new Order(); order.setId(1); order.setPrice(3.8) order.setName(null) LambdaUpdateWrapper<Order> lambdaUpdate = Wrappers.lambdaUpdate(); //構(gòu)建where條件根據(jù)id修改 lambdaUpdate.eq(Order::getId, order.getId()); //name屬性為空時(shí)可以修改字段為NULL if (StringUtils.isEmpty(order.getName())) lambdaUpdate.set(Order::getName, null); //此時(shí)生成的SQL語(yǔ)句為update order set price = 3.8, name = null where id = 1 super.update(order, lambdaUpdate);
推薦原因:不影響任何地方只在此處生效
補(bǔ)充:
Mysql中創(chuàng)建表字段允許空值NULL和不允許空值NULL
mysql如何修改字段允許為空
修改字段允許為空
alter table 表名 modify 字段名 字段類型 null;
MODIFY功能是修改字段屬性,只是alter功能下的一個(gè)功能模塊.
alter table employees MODIFY name varchar(14) null;
將字段數(shù)據(jù)為空
update 表名 ser 字段名 = null where 條件
update employees set date = null where id ='10001';
Null與空值的區(qū)別
1、對(duì)象的內(nèi)容不同
null表示對(duì)象的內(nèi)容為空,即對(duì)象的內(nèi)容是空白的。
空值表示對(duì)象的內(nèi)容無(wú)法確定。
2、對(duì)象的值不同
null表示對(duì)象計(jì)算中具有保留的值,用于指示指針不引用有效對(duì)象。
空值表示值未知,空值一般表示數(shù)據(jù)未知、不適用或?qū)⒃谝院筇砑訑?shù)據(jù)。
創(chuàng)建MySql數(shù)據(jù)表,
create table student( id varchar(10) primary key NOT NULL , name varchar(20) NOT NULL, //不允許為空 Info varchar(50) NULL //允許為空 );
為字段設(shè)置允許空值NULL和不允許空值NOT NULL
到此這篇關(guān)于MyBatis-Plus如何將字段修改為空值的文章就介紹到這了,更多相關(guān)MyBatis-Plus字段修改為空值內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java中 this和super的用法與區(qū)別小結(jié)
在Java的學(xué)習(xí)與開(kāi)發(fā)者我們經(jīng)常遇到this和super關(guān)鍵字,本文主要介紹了Java中 this和super的用法與區(qū)別小結(jié),具有一定的參考價(jià)值,感興趣的可以了解一下2023-12-12在Java的MyBatis框架中建立接口進(jìn)行CRUD操作的方法
這篇文章主要介紹了在Java的MyBatis框架中建立接口進(jìn)行CRUD操作的方法,CRUD是指在做計(jì)算處理時(shí)的增加(Create)、重新取得數(shù)據(jù)(Retrieve)、更新(Update)和刪除(Delete)幾個(gè)單詞的首字母簡(jiǎn)寫(xiě),需要的朋友可以參考下2016-04-04Javamelody監(jiān)控不到sql的問(wèn)題(親測(cè)有效)??
JavaMelody是用來(lái)在QA和實(shí)際運(yùn)行生產(chǎn)環(huán)境中監(jiān)控Java或Java?EE應(yīng)用程序服務(wù)器的一個(gè)開(kāi)源框架,這篇文章主要介紹了Javamelody監(jiān)控不到sql(親測(cè)有效)??,需要的朋友可以參考下2022-10-10OpenJDK源碼解析之System.out.println詳解
這篇文章主要介紹了OpenJDK源碼解析之System.out.println詳解,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)java的小伙伴們有非常好的幫助,需要的朋友可以參考下2021-04-04java讀取配置文件自定義字段(yml、properties)
本文主要介紹了java讀取配置文件自定義字段(yml、properties),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07