以下是使用 MyBatis-Plus 进行自动填充的简单步骤:
1. 定义实体类:
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.util.Date;
@Data
@TableName("user")
public class User {
private Long id;
private String name;
// 创建时间,插入时自动填充
@TableField(fill = FieldFill.INSERT)
private Date createTime;
// 更新时间,插入和更新时自动填充
@TableField(fill = FieldFill.INSERT_UPDATE)
private Date updateTime;
}
在上述例子中,通过 @TableField(fill = FieldFill.INSERT) 和 @TableField(fill = FieldFill.INSERT_UPDATE) 注解标识需要自动填充的字段。
2. 配置自动填充处理器:
创建一个自定义的处理器类,实现 MetaObjectHandler 接口,并配置到 MyBatis-Plus 的全局配置中。
import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
import org.apache.ibatis.reflection.MetaObject;
import org.springframework.stereotype.Component;
import java.util.Date;
@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());
}
}
在上述例子中,通过实现 MetaObjectHandler 接口,重写 insertFill 和 updateFill 方法,在插入和更新时进行相应的字段填充。
3. 配置 MyBatis-Plus 全局配置:
import com.baomidou.mybatisplus.autoconfigure.MybatisPlusPropertiesCustomizer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class MyBatisPlusConfig {
@Bean
public MybatisPlusPropertiesCustomizer plusPropertiesCustomizer() {
return plusProperties -> plusProperties.getGlobalConfig().setMetaObjectHandler(new MyMetaObjectHandler());
}
}
在上述例子中,通过配置 MybatisPlusPropertiesCustomizer 设置全局的 MetaObjectHandler。
通过以上步骤,就可以实现在插入和更新时自动填充指定字段。自动填充功能大大简化了在代码中手动设置这些字段的操作,提高了代码的简洁性和可读性。
转载请注明出处:http://www.pingtaimeng.com/article/detail/7062/MyBatis