Mybatis-Plus使用@TableField實(shí)現(xiàn)自動(dòng)填充日期的代碼示例
一、前言
我們?cè)谌粘i_(kāi)發(fā)中經(jīng)常使用ORM框架,比如Mybatis、tk.Mybatis、Mybatis-Plus。不過(guò)最廣泛的還是Mybatis-Plus,我們的一些表,都會(huì)有創(chuàng)建時(shí)間、更新時(shí)間、創(chuàng)建人、更新人。這些我們每次都要自己手動(dòng)set吃力不討好,所以Mybatis-Plus帶來(lái)了自動(dòng)填充,今天小編帶大家一起學(xué)習(xí)一下,本次以填充日期為例哈!!學(xué)到的小伙伴記得一鍵三連哦~~
二、導(dǎo)入maven依賴(lài)
<dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.5.1</version> </dependency>
三、創(chuàng)建實(shí)體類(lèi)
@Data public class Test implements Serializable { private static final long serialVersionUID = 337361630075002456L; @TableId(type= IdType.ASSIGN_ID) private long id; private String name; private String gender; private String phone; @TableField(value = "create_date",fill = FieldFill.INSERT) private LocalDateTime createDate; @TableField(value = "update_date",fill = FieldFill.UPDATE) private LocalDateTime updateDate; }
四、自定義實(shí)現(xiàn)類(lèi) MyMetaObjectHandler
@Slf4j @Component public class MyMetaObjectHandler implements MetaObjectHandler { @Override public void insertFill(MetaObject metaObject) { log.info("start insert fill ...."); this.strictInsertFill(metaObject, "createDate", LocalDateTime.class, LocalDateTime.now()); } @Override public void updateFill(MetaObject metaObject) { log.info("start update fill ...."); this.strictUpdateFill(metaObject, "updateDate", LocalDateTime.class, LocalDateTime.now()); } }
五、Controller測(cè)試
@RestController @RequestMapping("/test") @Slf4j @RequiredArgsConstructor public class TestController { @NonNull private TestMapper testMapper; @GetMapping("/insert") public Result insert(@RequestBody Test test){ testMapper.insert(test); return Result.success("插入成功"); } @PutMapping("/update") public Result update(@RequestBody Test test){ testMapper.updateById(test); return Result.success("插入成功"); } }
友情提示: 這個(gè)@RequiredArgsConstructor
注解不明白的看我這篇文章哦!---> @RequiredArgsConstructor注解
六、測(cè)試添加
請(qǐng)求地址:localhost:8089/test/insert
請(qǐng)求內(nèi)容:
{ "name":"王", "gender":"男", "phone":"123" }
我們可以看到?jīng)]有輸入日期,自動(dòng)創(chuàng)建了哈??!
七、測(cè)試更新
請(qǐng)求地址:localhost:8089/test/update
請(qǐng)求內(nèi)容:
{ "id":14, "name":"王", "gender":"男", "phone":"123" } 復(fù)制代碼
此時(shí)我們看到更新也是可以自動(dòng)填充的!!
八、總結(jié)
總的來(lái)說(shuō)還是比較方便的,減輕開(kāi)發(fā)的工作量,代碼更加優(yōu)雅哈! ==特別提醒==:自動(dòng)填充的類(lèi)型要和實(shí)體類(lèi)的類(lèi)型一致,不然不會(huì)填充哈
到此這篇關(guān)于Mybatis-Plus使用@TableField實(shí)現(xiàn)自動(dòng)填充日期的代碼示例的文章就介紹到這了,更多相關(guān)Mybatis-Plus @TableField自動(dòng)填充日期內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Spring Boot Starters簡(jiǎn)介及其優(yōu)劣勢(shì)
在這篇文章中,我們將向你介紹Spring Boot Starters,并將討論Spring Boot Starters的優(yōu)點(diǎn)和優(yōu)勢(shì),感興趣的朋友跟隨腳本之家小編一起學(xué)習(xí)吧2018-05-05java實(shí)現(xiàn)簡(jiǎn)單控制臺(tái)五子棋游戲
這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)簡(jiǎn)單控制臺(tái)五子棋游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-11-11Springboot熱部署實(shí)現(xiàn)原理及實(shí)例詳解
這篇文章主要介紹了Springboot熱部署實(shí)現(xiàn)原理及實(shí)例詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-05-05Java Websocket Canvas實(shí)現(xiàn)井字棋網(wǎng)絡(luò)游戲
這篇文章主要介紹了Java Websocket Canvas實(shí)現(xiàn)井字棋網(wǎng)絡(luò)游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-08-08Java畢業(yè)設(shè)計(jì)實(shí)戰(zhàn)之食品溯源系統(tǒng)的實(shí)現(xiàn)
這是一個(gè)使用了java+Springboot+Maven+mybatis+Vue+mysql+wd開(kāi)發(fā)的食品溯源系統(tǒng),是一個(gè)畢業(yè)設(shè)計(jì)的實(shí)戰(zhàn)練習(xí),具有食品溯源該有的所有功能,感興趣的朋友快來(lái)看看吧2022-01-01springboot為異步任務(wù)規(guī)劃自定義線(xiàn)程池的實(shí)現(xiàn)
本文主要介紹了springboot為異步任務(wù)規(guī)劃自定義線(xiàn)程池,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-06-06Java ArrayList擴(kuò)容問(wèn)題實(shí)例詳解
這篇文章主要介紹了Java ArrayList擴(kuò)容問(wèn)題實(shí)例詳解,分享了相關(guān)代碼示例,小編覺(jué)得還是挺不錯(cuò)的,具有一定借鑒價(jià)值,需要的朋友可以參考下2018-02-02