服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - Java教程 - Mybatis-Plus使用@TableField实现自动填充日期的代码示例

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

2022-11-24 14:13偶尔善良 Java教程

数据库中经常有create_time,update_time两个字段,在代码中设置时间有点太麻烦了 mybatis-plus可以帮我们自动填充,本文主要介绍了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"
}

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

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

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

七、测试更新

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

?
1
2
3
4
5
6
7
{
    "id":14,
    "name":"王",
    "gender":"男",
    "phone":"123"
}
复制代码

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

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

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

八、总结

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

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

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

延伸 · 阅读

精彩推荐