欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

使用Mybatis-plus策略自動更新數(shù)據(jù)庫時間失敗問題解決

 更新時間:2020年10月15日 10:29:54   作者:YukunWen  
這篇文章主要介紹了使用Mybatis-plus策略自動更新數(shù)據(jù)庫時間失敗問題解決,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

引言

在mybatis項(xiàng)目中,我們一般會使用它的插件plus以擴(kuò)充它的基本查詢功能。另一方面,在阿里巴巴開發(fā)手冊的規(guī)范中也提到,在數(shù)據(jù)庫表創(chuàng)建的時候,一般會有一個create_time和update_time字段,它們的建表語句往往如下:

'create_time' timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
'update_time' timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,

創(chuàng)建者則是希望在行insert的時候會自動生成create_time,同時在其它行進(jìn)行修改后,執(zhí)行update操作會自動更新update_time字段。

博主在開發(fā)過程中,首先采用了mybatis plus的selectOne,查詢出某一個對象XXX,并對其某一值進(jìn)行修改(比如狀態(tài)status從0修改成1),然后想利用數(shù)據(jù)庫的自動時間更新策略,即ON UPDATE CURRENT_TIMESTAMP去自動修改時間。于是用xxxService.updateById(XXX)。

但是,這樣子的更新方法并不會自動更新時間。因?yàn)閟electOne出來的對象是有一個明確時間了,然后update的時候就會注入這個原時間。

解決辦法

方法一:

自己書寫數(shù)據(jù)庫字段策略,進(jìn)行updateFill(),可以參考:http://www.dbjr.com.cn/article/197456.htm

這種方法的確定其博主也說了“注意這種方式只會在使用Mybatis-plus封裝好的方法時才會有 效,使用自己定義的service并不會生效,這是個坑”。同時,我認(rèn)為這種方法要求每個表的updateTime都是要在修改的時候改變的。有些情況下,修改個別字段可能不需要改變。在這樣像切面一樣,一刀切的注入感覺靈活性不夠。

方法二:

自己寫原生的update sql,只修改要修改的字段,不更改updateTime字段。這樣子在保存的時候就會自動更新時間了。

方法三:

利用plus提供的注解,在對應(yīng)的entity的字段注解@TableField中加入update = "now()",其中update = "now()"表示使用數(shù)據(jù)庫時間,輸出 SQL 為:update 表 set 字段=now() where ...,同時字段 update set 部分注入, 該注解優(yōu)于 el 注解使用。

圖1.注解書寫示意圖

注意:這種方法在執(zhí)行updateById的時候有效,執(zhí)行updateAllColumnById的時候是無效的。updateAllColumnById必須設(shè)定時間

總結(jié)

我們在生成實(shí)體的時候明確知道該表的update_time字段就是要做自動更新的,那就用方法二所述的plus下TableField注解進(jìn)行更新。同時注意updateAllColumnById的情況就好。
至于方法一采用的insertFill和updateFill,這種適合全部的情況下的切面。除非在早期就明確了,如果是在中后期突然要增加的,務(wù)必確保是之前表中沒有采用的字段,否則有的時候沖突了,寫入的時候被串改,會導(dǎo)致很難查詢到數(shù)據(jù)錯誤來源。

到此這篇關(guān)于使用Mybatis-plus策略自動更新數(shù)據(jù)庫時間失敗問題解決的文章就介紹到這了,更多相關(guān)Mybatis-plus自動更新數(shù)據(jù)庫時間內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家! 

相關(guān)文章

  • Java設(shè)計模式之觀察者模式(Observer Pattern)詳解

    Java設(shè)計模式之觀察者模式(Observer Pattern)詳解

    觀察者模式(Observer Pattern)是一種行為型設(shè)計模式,它定義了一種一對多的依賴關(guān)系,當(dāng)一個對象的狀態(tài)發(fā)生改變時,所有依賴于它的對象都能夠自動地得到通知并進(jìn)行更新,本文將詳細(xì)的給大家介紹一下Java觀察者模式,需要的朋友可以參考下
    2023-07-07
  • java中final修飾符的使用方法

    java中final修飾符的使用方法

    這篇文章主要為大家詳細(xì)介紹了java中final修飾符的使用方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • 聊聊SpringBoot的@Scheduled的并發(fā)問題

    聊聊SpringBoot的@Scheduled的并發(fā)問題

    這篇文章主要介紹了聊聊SpringBoot的@Scheduled的并發(fā)問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • 簡單了解Java的默認(rèn)和靜態(tài)方法

    簡單了解Java的默認(rèn)和靜態(tài)方法

    這篇文章主要介紹了簡單了解Java的默認(rèn)和靜態(tài)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-01-01
  • java基于odbc連接oracle的實(shí)現(xiàn)方法

    java基于odbc連接oracle的實(shí)現(xiàn)方法

    這篇文章主要介紹了java基于odbc連接oracle的實(shí)現(xiàn)方法,結(jié)合實(shí)例形式分析了連接操作的具體步驟與相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2016-09-09
  • Java文件斷點(diǎn)續(xù)傳實(shí)現(xiàn)原理解析

    Java文件斷點(diǎn)續(xù)傳實(shí)現(xiàn)原理解析

    這篇文章主要介紹了Java文件斷點(diǎn)續(xù)傳實(shí)現(xiàn)原理解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-05-05
  • ssm?mybatis如何配置多個mapper目錄

    ssm?mybatis如何配置多個mapper目錄

    這篇文章主要介紹了ssm?mybatis如何配置多個mapper目錄,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教。
    2022-01-01
  • 詳解Mybatis多參數(shù)傳遞入?yún)⑺姆N處理方式

    詳解Mybatis多參數(shù)傳遞入?yún)⑺姆N處理方式

    這篇文章主要介紹了詳解Mybatis多參數(shù)傳遞入?yún)⑺姆N處理方式,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • Mybatis-Plus多表關(guān)聯(lián)查詢的使用案例解析

    Mybatis-Plus多表關(guān)聯(lián)查詢的使用案例解析

    這篇文章主要介紹了Mybatis-Plus多表關(guān)聯(lián)查詢的使用,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-05-05
  • 什么情況下會出現(xiàn)java.io.IOException?:?Broken?pipe這個錯誤以及解決辦法

    什么情況下會出現(xiàn)java.io.IOException?:?Broken?pipe這個錯誤以及解決辦法

    這篇文章主要介紹了什么情況下會出現(xiàn)java.io.IOException?:?Broken?pipe這個錯誤以及解決辦法的相關(guān)資料,這個錯誤表示通信另一端已關(guān)閉連接,常發(fā)生在客戶端關(guān)閉連接、網(wǎng)絡(luò)超時或資源不足等情況,文中將解決辦法介紹的非常詳細(xì),需要的朋友可以參考下
    2024-10-10

最新評論