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 自动更新时间内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
maven引入mysql-connector-java包失败的解决方案
这篇文章主要介绍了maven引入mysql-connector-java包失败的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2023-02-02Java 8 Stream Api 中的 map和 flatMap 操作方法
Java 8提供了非常好用的 Stream API ,可以很方便的操作集合。今天通过这篇文章给大家分享Java 8 Stream Api 中的 map和 flatMap 操作方法,需要的朋友可以参考下2019-11-11
最新评论