MyBatis 自动更新时间的方法实现

 更新时间:2024年06月10日 11:19:45   作者:Kwan的解忧杂货铺  
本文主要介绍了MyBatis 自动更新时间的方法实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

1.@TableField 注解

在 Java 编程中,@TableField注解通常与 MyBatis-Plus 框架一起使用,用于指定实体类字段与数据库表字段的映射关系。@TableField注解中的value属性用于指定数据库表中的字段名,而fill属性用于指定字段值的填充策略

2.FieldFill.INSERT

@TableField(value = "create_time", fill = FieldFill.INSERT)这个注解表示实体类中有一个字段与数据库表中的create_time字段相对应。fill属性设置为FieldFill.INSERT,意味着当插入新记录时,这个字段的值会被自动填充。通常,这用于记录创建时间,每次插入新记录时,自动设置为当前时间。

3.FieldFill.INSERT_UPDATE

@TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)这个注解表示实体类中有一个字段与数据库表中的update_time字段相对应。fill属性设置为FieldFill.INSERT_UPDATE,意味着这个字段的值会在插入新记录时被填充,并且在每次记录更新时也会被更新为当前时间。这通常用于记录最后更新时间。

4.MyMetaObjectHandler

@Slf4j
@Component
public class MyMetaObjectHandler implements MetaObjectHandler {

   @Override
    public void insertFill(MetaObject metaObject) {
        this.strictInsertFill(metaObject, "createTime", Date.class, new Date());
        this.strictInsertFill(metaObject, "updateTime", Date.class, new Date());
    }

    @Override
    public void updateFill(MetaObject metaObject) {
        this.strictUpdateFill(metaObject, "updateTime", Date.class, new Date());
    }

}

5.实体类

@ApiModelProperty("创建时间")
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@TableField(value = "create_time", fill = FieldFill.INSERT)
private Date createTime;
@ApiModelProperty("更新时间")
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)
private Date updateTime;

6.数据库

`create_time`   timestamp      DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time`   timestamp      DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',

到此这篇关于MyBatis 自动更新时间的几种方法的文章就介绍到这了,更多相关MyBatis 自动更新时间内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家! 

相关文章

  • java阻塞队列实现原理及实例解析

    java阻塞队列实现原理及实例解析

    这篇文章主要介绍了java阻塞队列实现原理及实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-11-11
  • Java数组看这篇就够了

    Java数组看这篇就够了

    这篇文章主要介绍了Java数组的详细解释,是Java入门学习中的基础知识,需要的朋友可以参考下,希望能够给你带来帮助
    2021-09-09
  • SpringBoot集成JWT的工具类与拦截器实现方式

    SpringBoot集成JWT的工具类与拦截器实现方式

    这篇文章主要介绍了SpringBoot集成JWT的工具类与拦截器实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-01-01
  • 详解Java中对象池的介绍与使用

    详解Java中对象池的介绍与使用

    对象池,顾名思义就是一定数量的已经创建好的对象(Object)的集合。这篇文章主要为大家介绍了Java中对象池的介绍与使用,感兴趣的可以了解一下
    2023-02-02
  • SpringBoot3安全管理操作方法

    SpringBoot3安全管理操作方法

    这篇文章主要介绍了SpringBoot3安全管理,在实际开发中,最常用的是登录验证和权限体系两大功能,在登录时完成身份的验证,加载相关信息和角色权限,在访问其他系统资源时,进行权限的验证,保护系统的安全,文中有详细的操作步骤,需要的朋友可以参考下
    2023-08-08
  • Java RandomAccessFile的用法详解

    Java RandomAccessFile的用法详解

    下面小编就为大家带来一篇Java RandomAccessFile的用法详解。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-06-06
  • Java查看变量的数据类型的三种方法

    Java查看变量的数据类型的三种方法

    Java是一门强类型的编程语言,它对变量的数据类型有严格的限定,在定义变量时必须声明变量的数据类型,在为变量赋值时必须赋予与变量同一种类型的值,否则程序会报错, 所以本文给大家介绍了Java查看变量的数据类型的三种方法,需要的朋友可以参考下
    2024-10-10
  • java -length的三种用法说明

    java -length的三种用法说明

    这篇文章主要介绍了java -length的三种用法说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-09-09
  • 初始JAVA模块化开发的超详细步骤(适合菜鸟)

    初始JAVA模块化开发的超详细步骤(适合菜鸟)

    这篇文章主要介绍了初始JAVA模块化开发的超详细步骤,详细解释了模块描述符的职责、模块路径的概念以及如何使用命令行运行模块化Java程序,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2025-03-03
  • @TransactionalEventListener的使用和实现原理分析

    @TransactionalEventListener的使用和实现原理分析

    这篇文章主要介绍了@TransactionalEventListener的使用和实现原理分析,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-12-12

最新评论