MyBatis-Plus 实现自动填充 createTime 和 updateTime
数据库的表中需要创建时间和修改时间字段时,常规的做法是:
1、在数据库操作
Navicat 可视化界面
create_time:
update_time:
sql 语句为:
2、在代码中进行相关操作的时候手动设置。
MyBatis-Plus 提供了自动填充功能
链接:https://mp.baomidou.com/guide/auto-fill-metainfo.html
原理:
实现元对象处理器接口:com.baomidou.mybatisplus.core.handlers.MetaObjectHandler
注解填充字段
@TableField(.. fill = FieldFill.INSERT)
生成器策略部分也可以配置!
步骤:
(1)在实体类中标记为填充字段
用法:
(2)自定义实现类 MyMetaObjectHandler
用法:
注意事项:
填充原理是直接给
entity
的属性设置值!!!注解则是指定该属性在对应情况下必有值,如果无值则入库会是
null
MetaObjectHandler
提供的默认方法的策略均为:如果属性有值则不覆盖,如果填充值为null
则不填充字段必须声明
TableField
注解,属性fill
选择对应策略,该声明告知Mybatis-Plus
需要预留注入SQL
字段填充处理器
MyMetaObjectHandler
在 Spring Boot 中需要声明@Component
或@Bean
注入要想根据注解
FieldFill.xxx
和字段名
以及字段类型
来区分必须使用父类的strictInsertFill
或者strictUpdateFill
方法不需要根据任何来区分可以使用父类的
fillStrategy
方法
版权声明: 本文为 InfoQ 作者【棉花糖】的原创文章。
原文链接:【http://xie.infoq.cn/article/1a7cd6ab43ce4f3c7cc6d611a】。未经作者许可,禁止转载。
评论