最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

關(guān)于Mybatis-Plus字段策略與數(shù)據(jù)庫(kù)自動(dòng)更新時(shí)間的一些問(wèn)題

 更新時(shí)間:2020年10月15日 10:03:19   作者:Fearlessroy  
這篇文章主要介紹了關(guān)于Mybatis-Plus字段策略與數(shù)據(jù)庫(kù)自動(dòng)更新時(shí)間的一些問(wèn)題,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

字段策略 0:”忽略判斷”,1:”非 NULL 判斷”),2:”非空判斷”

問(wèn)題描述

當(dāng)字段策略為 0 “忽略判斷” 的時(shí)候,如果實(shí)體和數(shù)據(jù)庫(kù)有字段是需要自動(dòng)更新的,例如update_time,更新某條記錄的時(shí)候自動(dòng)刷新update_time,理論上我們?cè)跇I(yè)務(wù)控制的時(shí)候是不需要設(shè)置update_time的,利用數(shù)據(jù)庫(kù)特性就好,但是在該字段策略下,業(yè)務(wù)邏輯要更新字段(沒有主動(dòng)設(shè)置 update_time),這時(shí)候因?yàn)楹雎耘袛?,?shù)據(jù)庫(kù)(我這里是MySql)是不會(huì)去更新update_time的,即使這個(gè)字段在數(shù)據(jù)庫(kù)中是這樣定義的:update_time datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE,在這種字段策略下,該字段會(huì)被設(shè)為null,具體的執(zhí)行語(yǔ)句時(shí)insert into table(….,update_time) values(…,null)。

解決方法

實(shí)現(xiàn)MetaObjectHandler的insertFill()方法和updateFill()方法

@Component    
public class MyMetaObjectHandler extends MetaObjectHandler {   
//新增填充  
@Override   
public void insertFill(MetaObject metaObject){  
 // 獲取當(dāng)前時(shí)間,自動(dòng)更新以下數(shù)據(jù)庫(kù)字段    
 setFieldValByName("updateTime", new Date(), metaObject);   
}  
//更新填充  
@Override   
public void updateFill(MetaObject metaObj ct) {   
 // 獲取當(dāng)前時(shí)間,自動(dòng)更新以下數(shù)據(jù)庫(kù)字段   
 setFieldValByName("updateTime", new Date(), metaObject);   
}   
}

新增一個(gè)Component,繼承MetaObjectHandler,重寫 insertFill()和updateFill()兩個(gè)方法,自定義插入和更新規(guī) 則,繼承基類中的這兩個(gè)方法都為空。

注意這種方式只會(huì)在使用Mybatis-plus封裝好的方法時(shí)才會(huì)有 效,使用自己定義的service并不會(huì)生效,這是個(gè)坑,所以這種 方式我并不推薦。

將字段策略設(shè)為 2 “非空判斷”

這時(shí)候,無(wú)論是插入還是更新語(yǔ)句都只會(huì)完成對(duì)已設(shè)置具體值得屬性進(jìn)行操作。例如:表中除了update_time以外,還有user_name字段,我們?cè)诖a中設(shè)置了這個(gè)字段的值,那么在insert的時(shí)候執(zhí)行的語(yǔ)句是: insert into table (user_name) valuse(userName),而不會(huì)去對(duì)沒有設(shè)置值得字段做任何操作,這樣,有關(guān)時(shí)間的字段就可以直接交給數(shù)據(jù)庫(kù)了。

字段策略為 ““非空判斷”” 的一個(gè)問(wèn)題

假設(shè)有個(gè)Entity User,這個(gè)Entity屬性沒有默認(rèn)值,我們 new 一個(gè)實(shí)例,User user = new User(),然后啥也沒做,調(diào)用UserService.insert(),這時(shí)候就會(huì)出現(xiàn)一個(gè)問(wèn)題,Mybatis-plus不知道你想插入哪些值,因?yàn)闆]有顯示setter,這是一個(gè)需要注意的問(wèn)題。

到此這篇關(guān)于關(guān)于Mybatis-Plus字段策略與數(shù)據(jù)庫(kù)自動(dòng)更新時(shí)間的一些問(wèn)題的文章就介紹到這了,更多相關(guān)Mybatis-Plus 字段策略內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 關(guān)于Java中String創(chuàng)建的字符串對(duì)象內(nèi)存分配測(cè)試問(wèn)題

    關(guān)于Java中String創(chuàng)建的字符串對(duì)象內(nèi)存分配測(cè)試問(wèn)題

    這篇文章主要介紹了Java中String創(chuàng)建的字符串對(duì)象內(nèi)存分配測(cè)試,給大家詳細(xì)介紹了在創(chuàng)建String對(duì)象的兩種常用方法比較,通過(guò)示例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2021-07-07
  • Java9垃圾回收方法finalize() 原理解析

    Java9垃圾回收方法finalize() 原理解析

    這篇文章主要介紹了Java9垃圾回收方法finalize() 原理解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-02-02
  • java ThreadLocal?類常用方法源碼解析

    java ThreadLocal?類常用方法源碼解析

    這篇文章主要為大家介紹了java ThreadLocal類常用方法源碼解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-07-07
  • SpringBoot中Aware接口使用及原理解析

    SpringBoot中Aware接口使用及原理解析

    在Spring中存在一個(gè)Aware接口,實(shí)現(xiàn)該接口可以讓我們的Bean獲取到Spring容器中特定的資源,但該接口只是個(gè)標(biāo)記接口,不存在任何方法,本文將給大家詳細(xì)介紹一下SpringBoot中Aware接口使用及原理,需要的朋友可以參考下
    2023-08-08
  • Java中Iterator(迭代器)的用法詳解

    Java中Iterator(迭代器)的用法詳解

    Java迭代器(Iterator)是?Java?集合框架中的一種機(jī)制,它提供了一種在不暴露集合內(nèi)部實(shí)現(xiàn)的情況下遍歷集合元素的方法。本文主要介紹了它的使用方法,希望對(duì)大家有所幫助
    2023-05-05
  • Maven將代碼及依賴打成一個(gè)Jar包的方式詳解(最新推薦)

    Maven將代碼及依賴打成一個(gè)Jar包的方式詳解(最新推薦)

    這篇文章主要介紹了Maven將代碼及依賴打成一個(gè)Jar包的方式,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-05-05
  • Java ArrayAdapter用法案例詳解

    Java ArrayAdapter用法案例詳解

    這篇文章主要介紹了Java ArrayAdapter用法案例詳解,本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • 使用JMF實(shí)現(xiàn)java視頻播放器

    使用JMF實(shí)現(xiàn)java視頻播放器

    這篇文章主要為大家詳細(xì)介紹了使用JMF實(shí)現(xiàn)java視頻播放器的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • SpringBoot利用觀察者模式實(shí)現(xiàn)聯(lián)動(dòng)更新機(jī)制

    SpringBoot利用觀察者模式實(shí)現(xiàn)聯(lián)動(dòng)更新機(jī)制

    觀察者模式(Observer Pattern)是一種軟件設(shè)計(jì)模式,在許多應(yīng)用系統(tǒng)中,我們經(jīng)常需要處理多個(gè)表之間的關(guān)聯(lián)更新問(wèn)題,本文將通過(guò)一個(gè)具體的案例,介紹如何在Spring Boot項(xiàng)目中利用觀察者模式來(lái)優(yōu)雅地解決這一需求,需要的朋友可以參考下
    2024-07-07
  • JAVA多線程間通訊常用實(shí)現(xiàn)方法解析

    JAVA多線程間通訊常用實(shí)現(xiàn)方法解析

    這篇文章主要介紹了JAVA多線程間通訊常用實(shí)現(xiàn)方法解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-09-09

最新評(píng)論

松潘县| 奇台县| 钦州市| 方山县| 景谷| 格尔木市| 商都县| 双柏县| 白银市| 彭水| 永登县| 隆子县| 甘南县| 印江| 武鸣县| 鄯善县| 祁东县| 峨眉山市| 冀州市| 修武县| 康马县| 中超| 静海县| 新蔡县| 平江县| 措勤县| 景洪市| 丁青县| 开江县| 信宜市| 邹平县| 二连浩特市| 五家渠市| 靖边县| 麦盖提县| 东山县| 双辽市| 津南区| 武隆县| 岳普湖县| 琼海市|