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

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

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

引言

在mybatis項(xiàng)目中,我們一般會(huì)使用它的插件plus以擴(kuò)充它的基本查詢功能。另一方面,在阿里巴巴開發(fā)手冊(cè)的規(guī)范中也提到,在數(shù)據(jù)庫表創(chuàng)建的時(shí)候,一般會(huì)有一個(gè)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的時(shí)候會(huì)自動(dòng)生成create_time,同時(shí)在其它行進(jìn)行修改后,執(zhí)行update操作會(huì)自動(dòng)更新update_time字段。

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

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

解決辦法

方法一:

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

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

方法二:

自己寫原生的update sql,只修改要修改的字段,不更改updateTime字段。這樣子在保存的時(shí)候就會(huì)自動(dòng)更新時(shí)間了。

方法三:

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

圖1.注解書寫示意圖

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

總結(jié)

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

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

相關(guān)文章

  • springboot使用之多個(gè)filter的執(zhí)行順序以及配置方式

    springboot使用之多個(gè)filter的執(zhí)行順序以及配置方式

    這篇文章主要介紹了springboot使用之多個(gè)filter的執(zhí)行順序以及配置方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • 基于mybatis中數(shù)組傳遞注意事項(xiàng)

    基于mybatis中數(shù)組傳遞注意事項(xiàng)

    這篇文章主要介紹了mybatis中數(shù)組傳遞注意事項(xiàng),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • Java根據(jù)控制臺(tái)實(shí)現(xiàn)定位異常

    Java根據(jù)控制臺(tái)實(shí)現(xiàn)定位異常

    這篇文章主要介紹了Java根據(jù)控制臺(tái)定位異常,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-05-05
  • java學(xué)習(xí)筆記之eclipse+tomcat 配置

    java學(xué)習(xí)筆記之eclipse+tomcat 配置

    俗話說:工欲善其事必先利其器,既然要學(xué)習(xí)java,首先把java的開發(fā)環(huán)境搗鼓一下吧,這里我們來談?wù)別clipse+tomcat的配置方法。
    2014-11-11
  • java Clone接口和深拷貝詳解

    java Clone接口和深拷貝詳解

    今天小編就為大家分享一篇關(guān)于Java Clonable接口和深拷貝詳解上的深入了解,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2021-08-08
  • java線程池參數(shù)自定義設(shè)置詳解

    java線程池參數(shù)自定義設(shè)置詳解

    這篇文章主要為大家介紹了java線程池參數(shù)自定義設(shè)置詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-11-11
  • SpringBoot yaml語法與JRS303校驗(yàn)超詳細(xì)講解

    SpringBoot yaml語法與JRS303校驗(yàn)超詳細(xì)講解

    YAML 是 “YAML Ain’t Markup Language”(YAML 不是一種標(biāo)記語言)的遞歸縮寫。在開發(fā)的這種語言時(shí),YAML 的意思其實(shí)是:“Yet Another Markup Language”(仍是一種標(biāo)記語言),本文給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2022-10-10
  • SpringCloud Feign高級(jí)配置詳解

    SpringCloud Feign高級(jí)配置詳解

    這篇文章主要介紹了SpringCloud Feign高級(jí)配置,feign是netflix提供的服務(wù)間基于http的rpc調(diào)用框架,在spring cloud得到廣泛應(yīng)用
    2022-09-09
  • spring-data-jpa中findOne與getOne的區(qū)別說明

    spring-data-jpa中findOne與getOne的區(qū)別說明

    這篇文章主要介紹了spring-data-jpa中findOne與getOne的區(qū)別說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • Springboot自動(dòng)配置原理及DataSource的應(yīng)用方式

    Springboot自動(dòng)配置原理及DataSource的應(yīng)用方式

    這篇文章主要介紹了Springboot自動(dòng)配置原理及DataSource的應(yīng)用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-07-07

最新評(píng)論

牡丹江市| 达日县| 南木林县| 吉隆县| 泗洪县| 华宁县| 石嘴山市| 涞源县| 舞钢市| 孟州市| 邵阳市| 安乡县| 兴安县| 灵川县| 洛宁县| 安新县| 报价| 万盛区| 水城县| 宜都市| 鞍山市| 西安市| 鹤峰县| 东丽区| 福建省| 交口县| 随州市| 峨眉山市| 勃利县| 江西省| 信宜市| 梁平县| 叶城县| 大埔区| 德安县| 广德县| 峡江县| 社旗县| 连城县| 牙克石市| 柘荣县|