About Me
欢迎各位读者访问,大家一起学习。
优秀是一种习惯♡♡♡
做更好的自己!
本人见识有限,写到博客难免有错误或疏忽的地方,还望各位大佬多多指点,在此表示感激不尽。♡♡♡
MyBatisPlus自动填充功能
1. 需求:
项目需求中,需要在插入数据或修改数据的时候自动填充createTime和updateTime为当前插入数据的时间,或修改数据的时间,类似这种业务中有些属性需要配置默认值,而MyBatistaPlus就提供了实现此功能的需求,也就是公共字段自动填充。
- 原理:给实体类entity的属性设置值
- 好处:统一对字段处理,避免重复代码
2. 基础知识:
-
@TableField : 指定自动填充策略
用于标注在实体类中,表示那些字段需要填充。
-
FieldFill : 是一个枚举,用于指定在什么情况下填充,有以下几种策略:
字段必须声明FieldFill注解,属性fill选择对应的策略,该声明主要是用来告知MybatisPlus需要预留注入SQL字段。
策略 | 说明 |
---|---|
DEFAULT | 默认不处理 |
INSERT | 插入时自动填充字段 |
UPDATE | 修改时自动填充字段 |
INSERT_UPDATE | 插入修改时自动填充字段 |
3. 代码实现:
3.1 数据库
需求是给create_time和update_time自动填充
3.2 实体类
实体类的属性上加入@TableField注解,指定自动填充策略
3.3 元数据对象处理器
自定义一个类为元数据对象处理器,在这个类为实体类中的公共字段赋值,注意需要实现MetaObjectHeadler接口。填充处理器在SpringBoot中需要使用注解@Compoent或@Bean注入。
4. 测试:
通过上述功能可以将之前每次添加,修改的时候都需要手动设置创建时间,修改时间。下面我将之前的设置信息注释,现在就可以使用mybatisplus自动填充啦!
数据库:
不要在最能吃苦的年纪选择了安逸!!! --- Tornado♥
正文完