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

 更新时间:2022年04月26日 15:04:00   作者:偶尔善良  
数据库中经常有create_time,update_time两个字段,在代码中设置时间有点太麻烦了 mybatis-plus可以帮我们自动填充,本文主要介绍了Mybatis-Plus使用@TableField实现自动填充日期的代码示例,感兴趣的可以了解一下

一、前言

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

二、导入maven依赖

<dependency>
     <groupId>com.baomidou</groupId>
     <artifactId>mybatis-plus-boot-starter</artifactId>
     <version>3.5.1</version>
 </dependency>

三、创建实体类

@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

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

@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 请求内容:

{ 
    "name":"王",
    "gender":"男",
    "phone":"123"
}

在这里插入图片描述

在这里插入图片描述

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

七、测试更新

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

{ 
	"id":14,
    "name":"王",
    "gender":"男",
    "phone":"123"
}
复制代码

在这里插入图片描述

在这里插入图片描述

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

八、总结

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

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

相关文章

  • Java中实现文件预览的功能(实例代码)

    Java中实现文件预览的功能(实例代码)

    大家都知道word,Excel,PPT实现在线预览常用的方式就是先转换成pdf,然后在进行预览,下面给大家介绍Java中如何实现文件预览的功能,需要的朋友可以参考下
    2023-05-05
  • Springboot打包成jar发布的操作方法

    Springboot打包成jar发布的操作方法

    打包的方式有打包成jar包或者打包成war包发布,区别在于jar包内置了tomcat、netty等服务器,更改只需要修改pom.xml的坐标即可,war不内置服务器,需要上传到服务器tomcat解压后运行,本文分析Springboot打包成jar发布,感兴趣的朋友一起看看吧
    2023-02-02
  • Springboot @WebFilter无法注入其他Bean的示例问题

    Springboot @WebFilter无法注入其他Bean的示例问题

    这篇文章主要介绍了Springboot @WebFilter无法注入其他Bean的示例问题,本文通过示例代码给大家分享解决方法,需要的朋友可以参考下
    2021-09-09
  • javaNIO中关于ByteBuffer的用法

    javaNIO中关于ByteBuffer的用法

    这篇文章主要介绍了javaNIO中关于ByteBuffer的用法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-08-08
  • Spring Data Neo4j Cypher查询使用

    Spring Data Neo4j Cypher查询使用

    本文介绍了Spring Data Neo4j Cypher查询使用的几种方法,包括使用Repository接口、动态查询、服务层组合、外部查询文件和图形化查询构建器, 感兴趣的可以了解一下
    2024-11-11
  • Java 9中的"菱形"语法详解

    Java 9中的"菱形"语法详解

    Java 9 再次增强了“菱形”语法,它甚至允许在创建匿名内部类时使用菱形语法,Java 可根据上下文来推断匿名内部类中泛型的类型,下面程序示范了在匿名内部类中使用菱形语法,感兴趣的朋友跟随小编一起看看吧
    2023-06-06
  • SpringBoot + WebSocket 实现答题对战匹配机制案例详解

    SpringBoot + WebSocket 实现答题对战匹配机制案例详解

    这篇文章主要介绍了SpringBoot + WebSocket 实现答题对战匹配机制,分别为每个用户拟定四种在线状态,通过流程图给大家展示,需要的朋友可以参考下
    2021-05-05
  • Java中BeanUtils.copyProperties基本用法与小坑

    Java中BeanUtils.copyProperties基本用法与小坑

    本文主要介绍了Java中BeanUtils.copyProperties基本用法与小坑,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-04-04
  • 如何在Java中优雅地使用正则表达式详解

    如何在Java中优雅地使用正则表达式详解

    这篇文章主要给大家介绍了关于如何在Java中优雅地使用正则表达式的相关资料,正则表达式就是一个字符串,但和普通的字符串不同的是,正则表达式是对一组相似字符串的抽象,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-02-02
  • SpringCloud容器化服务发现及注册实现方法解析

    SpringCloud容器化服务发现及注册实现方法解析

    这篇文章主要介绍了SpringCloud容器化服务发现及注册实现方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-08-08

最新评论