java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > MyBatis 自动更新时间

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

作者: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 自动更新时间内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家! 

您可能感兴趣的文章:
阅读全文