好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

Mybatis-Plus使用@TableField实现自动填充日期的代码示例

一、前言

我们在日常开发中经常使用ORM框架,比如Mybatis、tk.Mybatis、Mybatis-Plus。不过最广泛的还是Mybatis-Plus,我们的一些表,都会有创建时间、更新时间、创建人、更新人。这些我们每次都要自己手动set吃力不讨好,所以Mybatis-Plus带来了自动填充,今天小编带大家一起学习一下,本次以填充日期为例哈!!学到的小伙伴记得一键三连哦~~

二、导入maven依赖

?

1

2

3

4

5

< dependency >

      < groupId >com.baomidou</ groupId >

      < artifactId >mybatis-plus-boot-starter</ artifactId >

      < version >3.5.1</ version >

  </ dependency >

三、创建实体类

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

@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;

 

}

四、自定义实现类 MyMetaObjectHandler

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

@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测试

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

@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( "插入成功" );

     }

}

友情提示: 这个 @RequiredArgsConstructor 注解不明白的看我这篇文章哦!---> @RequiredArgsConstructor注解

六、测试添加

请求地址: localhost:8089/test/insert 请求内容:

?

1

2

3

4

5

{

     "name" : "王" ,

     "gender" : "男" ,

     "phone" : "123"

}

我们可以看到没有输入日期,自动创建了哈!!

七、测试更新

请求地址: localhost:8089/test/update 请求内容:

?

1

2

3

4

5

6

7

{

     "id":14,

     "name":"王",

     "gender":"男",

     "phone":"123"

}

复制代码

此时我们看到更新也是可以自动填充的!!

八、总结

总的来说还是比较方便的,减轻开发的工作量,代码更加优雅哈! ==特别提醒==:自动填充的类型要和实体类的类型一致,不然不会填充哈

到此这篇关于Mybatis-Plus使用@TableField实现自动填充日期的代码示例的文章就介绍到这了,更多相关Mybatis-Plus @TableField自动填充日期内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!

原文链接:https://juejin.cn/post/7090450237625466911

查看更多关于Mybatis-Plus使用@TableField实现自动填充日期的代码示例的详细内容...

  阅读:26次