MybatisPlus的自动填充功能使用!

前端之家收集整理的这篇文章主要介绍了MybatisPlus的自动填充功能使用!前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

有时我们希望在更新数据的时候,自动完成某些字段的值的填充,如创建一个实体的时候,自动生成创建时间,更新的时候自动改变更新时间等。

  • 在指定字段标注注解,生成器策略部分也可以配置。
  1. // 创建时间
  2. @TableField(fill = FieldFill.INSERT)
  3. private Date createTime;
  4. // 更新时间
  5. @TableField(fill = FieldFill.INSERT_UPDATE)
  6. private Date updateTime;
  1. public enum FieldFill {
  2. /**
  3. * 默认不处理
  4. */
  5. DEFAULT,/**
  6. * 插入填充字段
  7. */
  8. INSERT,/**
  9. * 更新填充字段
  10. */
  11. UPDATE,/**
  12. * 插入和更新填充字段
  13. */
  14. INSERT_UPDATE
  15. }
  • 实现元对象处理接口:com.baomidou.mybatisplus.core.handlers.MetaObjectHandler
  1. @Slf4j
  2. @Component
  3. public class MyMetaObjectHandler implements MetaObjectHandler {
  4. // fieldName 指的是实体类的属性名,而不是数据库的字段名
  5. @Override
  6. public void insertFill(MetaObject MetaObject) {
  7. log.info("start insert fill ....");
  8. this.strictInsertFill(
  9. MetaObject,"createTime",LocalDateTime.class,LocalDateTime.now());
  10. this.strictInsertFill(
  11. MetaObject,"updateTime",LocalDateTime.now());
  12. }
  13. @Override
  14. public void updateFill(MetaObject MetaObject) {
  15. log.info("start update fill ....");
  16. this.strictUpdateFill(
  17. // 起始版本 3.3.0(推荐)
  18. MetaObject,LocalDateTime.now());
  19. // 或者
  20. this.strictUpdateFill(
  21. // 起始版本 3.3.3(推荐)
  22. MetaObject,LocalDateTime::now,LocalDateTime.class);
  23. }
  24. }

猜你在找的Mybatis相关文章