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