MyBatis Plus提供了丰富的插件机制,可以非常方便地扩展其功能。
使用步骤如下:
- 实现ITZhiMeiMetaObjectHandler接口:
public interface ITZhiMeiMetaObjectHandler {
// 字段填充前调用
void insertFill(MetaObject metaObject);
// 字段更新前调用
void updateFill(MetaObject metaObject);
}
- 在实现类中,调用 setFieldValByName()进行字段自动填充:
public class ITZhiMeiMyMetaObjectHandler implements ITZhiMeiMetaObjectHandler {
public void insertFill(MetaObject metaObject) {
Object fieldValue = getFieldValByName("createTime", metaObject);
if (fieldValue == null){
setFieldValByName("createTime", new Date(), metaObject);
}
}
public void updateFill(MetaObject metaObject) {
// ...
}
}
- 在启动类中注册插件:
package com.itzhimei
@SpringBootApplication
@EnableTransactionManagement
public class DemoApplication {
public static void main(String[] args) {
AutoConfiguration.setMulti(true);
// 自动填充器
AutoFillBean fill = new AutoFillBean();
// 注册
Configuration configuration = new Configuration();
configuration.addFill(fill);
// 覆盖默认
MultiTableFill.fill(configuration);
}
}
- 实体类添加@TableField(fill = FieldFill.INSERT)注解:
@TableField(fill = FieldFill.INSERT)
private Date createTime;
这样在insert时,该字段就会自动填充。
以上步骤实现了MyBatis Plus插件的自动填充功能。
通过实现MetaObjectHandler接口,注册到MyBatis Plus,就可以实现各种插件功能。