首页 > 其他分享 >Mybatis-Plus使用@TableField实现自动填充日期

Mybatis-Plus使用@TableField实现自动填充日期

时间:2022-08-29 10:45:41浏览次数:94  
标签:TableField 填充 private test Plus LocalDateTime Mybatis public

一、前言

我们在日常开发中经常使用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"
}

在这里插入图片描述
在这里插入图片描述
此时我们看到更新也是可以自动填充的!!

八、总结

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


有缘人才可以看得到的哦!!!

点击访问!小编自己的网站,里面也是有很多好的文章哦!

标签:TableField,填充,private,test,Plus,LocalDateTime,Mybatis,public
From: https://www.cnblogs.com/wang1221/p/16635059.html

相关文章

  • mybatis-plus专题学习
    1、优化规范【推荐】实体类需要实现Serializable接口一旦实现了Seriazlizable接口,就意味着该对象可以通过序列化/反序列化的方式在网络上传输通讯,该接口只是一个标志接口......
  • SpringBoot整合mybatis
    9、SpringBoot整合mybatisMyBatis-Spring-Boot-Starter官方文档:http://mybatis.org/spring-boot-starter/mybatis-spring-boot-autoconfigure/maven仓库:https://mvnrepos......
  • mybatis中的动态sql
    动态sql是:根据不同的查询条件,生成不同的查询结果常用的动态语句包括:-if-choose(when,otherwise)-trim(where,set)-foreachif语句<!--需求1:根据作者......
  • Mybatis中多对一与一对多
    多对一的处理在pojo中就有StudentprivateStringname;privateStringid;privateTeacherteacher;比如说多个学生对应着一个老师这样我们就要使用多表查询了方......
  • mybatis报错UnsupportedOperationException
    1:问题描述mapper文件定义   xml写法   运行则报错Causedby:org.apache.ibatis.exceptions.PersistenceException:###Errorqueryingdatabase.Cau......
  • HTML5PLUS实现类似右侧弹出菜单
    一、实现效果使用【plus.webview】对象实现右侧弹出菜单栏:点击菜单图标弹出菜单列表,点击页面其它地方或点击【关闭菜单】收缩菜单。 二、源码index.html:<!DOCTYPE......
  • 如何获取Mybatis
    1.maven仓库<!--https://mvnrepository.com/artifact/org.mybatis/mybatis--><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId>......
  • 什么是 MyBatis?
    1.MyBatis是一款优秀的持久层框架2.它支持自定义SQL、存储过程以及高级映射。MyBatis免除了几乎所有的JDBC代码以及设置参数和获取结果集的工作。MyBatis可以通过简......
  • MyBatis-特殊SQL的执行
    1. 通过用户名模糊查询用户信息SpecialSQLMapper.javapublicinterfaceSpecialSQLMapper{List<User>getUserByLike(@Param("mohu")Stringmohu);}SpecialSQ......
  • myBatis复习
     myBatis如何使用①maven导入包 <dependency><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId>......