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 自动更新时间内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
@TransactionalEventListener的使用和实现原理分析
这篇文章主要介绍了@TransactionalEventListener的使用和实现原理分析,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2021-12-12


最新评论