使用MybatisPlus如何实现自动填充功能

  介绍

这篇文章运用简单易懂的例子给大家介绍使用MybatisPlus如何实现自动填充功能,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

使用下面的注解设置填充的时机,例如<代码>插入、更新语句

 @TableField(填补=FieldFill.INSERT) 

有下面4种规则

使用MybatisPlus如何实现自动填充功能

源码

/* *   *字段填充策略枚举类   *   * & lt; p>   *判断注入的插入和更新的sql脚本是否在对应情况下忽略掉字段的如果标签生成   * & lt;如果测试=啊霸凇? lt;/if>   *判断优先级比{@link FieldStrategy}高   * & lt;/p>   *   * @author湖滨   * @since 2017-06-27   */公共enum FieldFill {/* *   *默认不处理   */默认情况下,/* *   *插入时填充字段   */插入,/* *   *更新时填充字段   */更新,/* *   *插入和更新时填充字段   */INSERT_UPDATE   }

创建一个类实现议员提供的<代码> MetaObjectHandler 接口

进口com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
  进口org.apache.ibatis.reflection.MetaObject;
  进口org.springframework.stereotype.Component;
  进口java.time.LocalDateTime;
  
  @ component
  公共类MyMetaObjectHandler实现MetaObjectHandler {
  @Override
  公共空间insertFill (MetaObject MetaObject) {
  setFieldValByName(“字段名,例如用户的createTime", LocalDateTime.now (), metaObject);
  }
  
  @Override
  公共空间updateFill (MetaObject MetaObject) {
  setFieldValByName(“字段名,例如用户的updateTime", LocalDateTime.now (), metaObject);
  }
  }

注意请将中文去掉换成自己实体对象的字段名

测试代码:

用户用户=新用户();
  user.setName(“张三“);
  user.setAge (12);
  user.setAge (12);
  user.setId l (11111111111);
  user.setEmail (“someone@qq.com");
  user.setManagerId l (1087982257332887553);
  int插入=userMapper.insert(用户);
  System.out.println(“插”入“+插入);

检测表中数据:

使用MybatisPlus如何实现自动填充功能

说明成功

<>强优化填充规则

案例代码:

进口com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
  进口org.apache.ibatis.reflection.MetaObject;
  进口org.springframework.stereotype.Component;
  
  进口java.time.LocalDateTime;
  
  @ component
  公共类MyMetaObjectHandler实现MetaObjectHandler {
  @Override
  公共空间insertFill (MetaObject MetaObject) {
  布尔createTime=metaObject.hasSetter (“createTime");//如果有这个字段返回现实
  如果(createTime){//如果字段不存在则不进行下面的填充
  setFieldValByName (“createTime" LocalDateTime.now (), metaObject);
  }
  }
  
  @Override
  公共空间updateFill (MetaObject MetaObject) {
  对象updateTime=getFieldValByName (“updateTime" metaObject);
  如果(null==updateTime){//没有设置updateTime值则进行填充如果有设置值则不进行填充
  setFieldValByName (“updateTime" LocalDateTime.now (), metaObject);
  }
  }
  }

关于使用MybatisPlus如何实现自动填充功能就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看的到。

使用MybatisPlus如何实现自动填充功能