MyBatis Plus的插件机制怎么使用?

MyBatis Plus提供了丰富的插件机制,可以非常方便地扩展其功能。

使用步骤如下:

  1. 实现ITZhiMeiMetaObjectHandler接口:
public interface ITZhiMeiMetaObjectHandler {
   // 字段填充前调用 
   void insertFill(MetaObject metaObject);

   // 字段更新前调用    
   void updateFill(MetaObject metaObject);
}
  1. 在实现类中,调用 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) {
     // ...
  }
}
  1. 在启动类中注册插件:
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); 
  }
}
  1. 实体类添加@TableField(fill = FieldFill.INSERT)注解:
@TableField(fill = FieldFill.INSERT)  
private Date createTime;

这样在insert时,该字段就会自动填充。

以上步骤实现了MyBatis Plus插件的自动填充功能。

通过实现MetaObjectHandler接口,注册到MyBatis Plus,就可以实现各种插件功能。