mybatis?plus更新字段為null處理方法
mybatis plus 將字段更新為 null,默認(rèn)如果不做任何處理,使用 mybatis plus 自帶的更新方法是不能將字段更新為 null 的,如果要將字段更新為 null,需要做下面的處理
在需要的字段上加 @TableField 注解,并設(shè)置屬性
updateStrategy = FieldStrategy.IGNORED
測(cè)試代碼如下
數(shù)據(jù)庫(kù)表
實(shí)體類
package com.sbmp.bean; import java.time.LocalDate; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import lombok.Data; @Data public class Userinfo { /** * 主鍵id */ @TableId(type = IdType.AUTO) private Integer id; /**| * 姓名 */ private String name; /** * 生日 */ private LocalDate birthday; }
mapper
package com.sbmp.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.sbmp.bean.Userinfo; public interface UserinfoMapper extends BaseMapper<Userinfo>{ }
controller
package com.sbmp.controller; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import com.sbmp.bean.Userinfo; import com.sbmp.mapper.UserinfoMapper; @RestController public class UserinfoController { @Autowired private UserinfoMapper userinfoMapper; @RequestMapping("/info") public String info() { Userinfo info = new Userinfo(); info.setId(1); info.setBirthday(null); info.setName("薛寶釵"); userinfoMapper.updateById(info); return "成功"; } }
運(yùn)行測(cè)試
看能不能將薛寶釵的生日更新為空
看打印的 sql 是沒(méi)有birthday = null 的拼接的,這就是默認(rèn)的情況
如果想拼接 birthday = null,需要在 birthday 字段上添加這個(gè)配置
@TableField(updateStrategy = FieldStrategy.IGNORED)
修改后的代碼如下
package com.sbmp.bean; import java.time.LocalDate; import com.baomidou.mybatisplus.annotation.FieldStrategy; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import lombok.Data; @Data public class Userinfo { /** * 主鍵id */ @TableId(type = IdType.AUTO) private Integer id; /**| * 姓名 */ private String name; /** * 生日 */ @TableField(updateStrategy = FieldStrategy.IGNORED) private LocalDate birthday; }
運(yùn)行測(cè)試
這次 birthday = null 成功更新
@TableField 部分屬性說(shuō)明
看官方文檔 updateStrategy 處理更新的情況;同理,添加的時(shí)候使用 insertStrategy;
涉及where條件處理使用 whereStrategy
FieldStrategy 說(shuō)明
以上就是mybatis plus更新字段為null處理方法的詳細(xì)內(nèi)容,更多關(guān)于mybatis plus更新字段為null的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Java手寫(xiě)線程池的實(shí)現(xiàn)方法
這篇文章主要為大家詳細(xì)介紹了Java手寫(xiě)線程池的實(shí)現(xiàn)方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-03-03Java 開(kāi)發(fā)環(huán)境配置步驟(介紹)
下面小編就為大家?guī)?lái)一篇Java 開(kāi)發(fā)環(huán)境配置步驟(介紹)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-05-05如何用Jfinal連接多個(gè)數(shù)據(jù)庫(kù)
這篇文章主要介紹了如何用Jfinal連接多個(gè)數(shù)據(jù)庫(kù),幫助大家更好的理解和學(xué)習(xí)使用Jfinal,感興趣的朋友可以了解下2021-03-03SpringCloud 微服務(wù)最佳開(kāi)發(fā)實(shí)踐
本文結(jié)合我們實(shí)際的開(kāi)發(fā)中遇到的一些問(wèn)題整理出了一份微服務(wù)開(kāi)發(fā)的實(shí)踐規(guī)范,對(duì)SpringCloud 微服務(wù)開(kāi)發(fā)實(shí)踐相關(guān)知識(shí)感興趣的朋友一起看看吧2021-07-07Java實(shí)現(xiàn)畫(huà)線、矩形、橢圓、字符串功能
本篇文章主要介紹了Java實(shí)現(xiàn)畫(huà)線、矩形、橢圓、字符串功能的實(shí)例代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-05-05SpringBoot項(xiàng)目打包三方JAR的示例代碼
本篇文章主要介紹了SpringBoot項(xiàng)目打包三方JAR的示例代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-09-09