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

MybatisPlus自動(dòng)填充創(chuàng)建(更新)時(shí)間問(wèn)題

 更新時(shí)間:2024年09月22日 09:55:37   作者:Java王小怪  
在開(kāi)發(fā)數(shù)據(jù)庫(kù)相關(guān)應(yīng)用時(shí),手動(dòng)設(shè)置創(chuàng)建和更新時(shí)間會(huì)導(dǎo)致代碼冗余,MybatisPlus提供了自動(dòng)填充功能,通過(guò)實(shí)現(xiàn)MetaObjectHandler接口并重寫insertFill、updateFill方法,可以自動(dòng)維護(hù)創(chuàng)建時(shí)間、更新時(shí)間等字段,極大簡(jiǎn)化了代碼,這不僅提高了開(kāi)發(fā)效率,也保證了數(shù)據(jù)的可追溯性

MybatisPlus自動(dòng)填充創(chuàng)建(更新)時(shí)間

在大多數(shù)情況下,我們?cè)趧?chuàng)建數(shù)據(jù)庫(kù)時(shí)都會(huì)加上創(chuàng)建、更新時(shí)間這些字段,為了保證數(shù)據(jù)的可追溯性,當(dāng)然肯定還是有操作日志記錄表用來(lái)做追溯記錄。

開(kāi)發(fā)中每一次的創(chuàng)建更新都需要手動(dòng)去設(shè)置這一次操作的時(shí)間,會(huì)有很多的代碼冗余。

  `create_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '創(chuàng)建時(shí)間',
  `create_user` bigint DEFAULT NULL COMMENT '創(chuàng)建人',
  `update_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新時(shí)間',
  `update_user` bigint DEFAULT NULL COMMENT '更新人',
  `status` tinyint DEFAULT '1' COMMENT '狀態(tài)(備用)',
  `is_deleted` tinyint DEFAULT '0' COMMENT '邏輯刪除

這個(gè)時(shí)候,有沒(méi)有一種方法可以幫我們自動(dòng)維護(hù)這些字段呢?

在這里的話,不得不提到MybatisPlus的功能強(qiáng)大了。MybatisPlus有一個(gè)擴(kuò)展功能:自動(dòng)填充。

此功能常見(jiàn)的應(yīng)用場(chǎng)景為,插入數(shù)據(jù)的時(shí)候自動(dòng)添加創(chuàng)建時(shí)間、創(chuàng)建人、修改時(shí)間、修改人、刪除標(biāo)記。

通過(guò)實(shí)現(xiàn)MetaObjectHandler接口,重寫insertFill、updateFill方法,當(dāng)我們插入和修改數(shù)據(jù)的時(shí)候可以自動(dòng)添加指定字段的值,這些不就是我們想要的效果嗎?

話不多說(shuō),上代碼!

一、實(shí)現(xiàn)MetaObjectHandler

@Component
public class MybatisHandler implements MetaObjectHandler {
	@Override
	public void insertFill(MetaObject metaObject) {
		//屬性名
		this.setFieldValByName("createTime", new Date(), metaObject);
		//this.setFieldValByName("createUser", SecureUtil.getUserId(), metaObject);
        //不維護(hù)create_user可以不使用這行代碼
	}

	@Override
	public void updateFill(MetaObject metaObject) {
		//屬性名
		this.setFieldValByName("updateTime", new Date(), metaObject);
		//this.setFieldValByName("updateUser", SecureUtil.getUserId(), metaObject);
	}
}

二、使用注解

    /**
	 * 進(jìn)行新增或者更新操作時(shí)
	 * Mybatis自動(dòng)進(jìn)行維護(hù)時(shí)間
	 */
	@TableField(fill= FieldFill.INSERT)
	private Long createUser;

	@TableField(fill=FieldFill.INSERT)
	private Date createTime;

	@TableField(fill=FieldFill.UPDATE)
	private Long updateUser;

	@TableField(fill=FieldFill.UPDATE)
	private Date updateTime;

這樣就可以做到自動(dòng)維護(hù)更新、創(chuàng)建時(shí)間啦!

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Spring中ResponseBodyAdvice的使用詳解

    Spring中ResponseBodyAdvice的使用詳解

    這篇文章主要介紹了Spring中ResponseBodyAdvice的使用,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-10-10
  • idea插件之mybatis log plugin控制臺(tái)sql的問(wèn)題

    idea插件之mybatis log plugin控制臺(tái)sql的問(wèn)題

    這篇文章主要介紹了idea插件之mybatis log plugin控制臺(tái)sql,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-09-09
  • Spring boot中filter類不能注入@Autowired變量問(wèn)題

    Spring boot中filter類不能注入@Autowired變量問(wèn)題

    這篇文章主要介紹了Spring boot中filter類不能注入@Autowired變量問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • Java中JSON字符串反序列化(動(dòng)態(tài)泛型)

    Java中JSON字符串反序列化(動(dòng)態(tài)泛型)

    文章討論了在定時(shí)任務(wù)中使用反射調(diào)用目標(biāo)對(duì)象時(shí)處理動(dòng)態(tài)參數(shù)的問(wèn)題,通過(guò)將方法參數(shù)存儲(chǔ)為JSON字符串并進(jìn)行反序列化,可以實(shí)現(xiàn)動(dòng)態(tài)調(diào)用,然而,這種方式容易導(dǎo)致內(nèi)存溢出(OOM),這篇文章主要介紹了JSON字符串反序列化?動(dòng)態(tài)泛型,需要的朋友可以參考下
    2024-12-12
  • SpringBoot配置的加載流程詳細(xì)分析

    SpringBoot配置的加載流程詳細(xì)分析

    了解內(nèi)部原理是為了幫助我們做擴(kuò)展,同時(shí)也是驗(yàn)證了一個(gè)人的學(xué)習(xí)能力,如果你想讓自己的職業(yè)道路更上一層樓,這些底層的東西你是必須要會(huì)的,這篇文章主要介紹了SpringBoot配置的加載流程
    2023-01-01
  • java動(dòng)態(tài)規(guī)劃算法——硬幣找零問(wèn)題實(shí)例分析

    java動(dòng)態(tài)規(guī)劃算法——硬幣找零問(wèn)題實(shí)例分析

    這篇文章主要介紹了java動(dòng)態(tài)規(guī)劃算法——硬幣找零問(wèn)題,結(jié)合實(shí)例形式分析了java動(dòng)態(tài)規(guī)劃算法——硬幣找零問(wèn)題相關(guān)原理、實(shí)現(xiàn)方法與操作注意事項(xiàng),需要的朋友可以參考下
    2020-05-05
  • logback 實(shí)現(xiàn)給變量指定默認(rèn)值

    logback 實(shí)現(xiàn)給變量指定默認(rèn)值

    這篇文章主要介紹了logback 實(shí)現(xiàn)給變量指定默認(rèn)值操作,具有很好的參考家價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • Thymeleaf對(duì)象的使用之基本對(duì)象實(shí)例解析

    Thymeleaf對(duì)象的使用之基本對(duì)象實(shí)例解析

    這篇文章主要介紹了Thymeleaf對(duì)象的使用之基本對(duì)象實(shí)例解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-04-04
  • 淺談Java操作符與其優(yōu)先級(jí)

    淺談Java操作符與其優(yōu)先級(jí)

    這篇文章主要介紹了淺談Java操作符與其優(yōu)先級(jí),具有一定借鑒價(jià)值,需要的朋友可以了解下。
    2017-12-12
  • 公共POI導(dǎo)出Excel方法詳解

    公共POI導(dǎo)出Excel方法詳解

    這篇文章主要介紹了公共POI導(dǎo)出Excel方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05

最新評(píng)論

芦山县| 德庆县| 炎陵县| 麦盖提县| 南城县| 沈丘县| 邹城市| 娄底市| 太和县| 天台县| 朝阳县| 年辖:市辖区| 海晏县| 南岸区| 澳门| 岐山县| 疏附县| 永和县| 井研县| 淄博市| 类乌齐县| 惠来县| 贺州市| 昌宁县| 镶黄旗| 乾安县| 永兴县| 平原县| 南乐县| 金华市| 长垣县| 西峡县| 洮南市| 乌兰浩特市| 雅安市| 许昌县| 鄂尔多斯市| 鹿邑县| 安远县| 木兰县| 英吉沙县|