Mybatis-Plus自动填充的实现示例

  

在常用业务中有些属性需要配置一些默认值,MyBatis-Plus提供了实现此功能的插件。在这里修改用户表添加create_time字段和update_time字段,在用户类中添加对应属性。

  

<强> 1,为需要自动填充的属性添加注解@TableField
  

  

提供了4种自动填充策略:默认情况下,默认不处理.INSERT,插入填充字段.UPDATE,更新填充字段.INSERT_UPDATE,插入和更新填充字段。

        @ data   公开课用户{   私人长id;   私人字符串名称;   私人整数年龄;   私人字符串邮件;      @TableField(填补=FieldFill.INSERT)   私人createTime日期;   @TableField(填补=FieldFill.INSERT_UPDATE)   私人updateTime日期;   }      之前      

<强> 2,实现字段填充控制器,编写自定义填充规则
  

  

实现MetaObjectHandler接口,实现insertFill和updateFill方法,此处的create_time和update_time字段需要插入时填充的值,只有update_time字段在修改时需要填充,所以策略如下。
  

     //需要将自定义填充控制器注册为组件      @ component   公共类MyMetaObjectHandler实现MetaObjectHandler {      私有静态最终日志记录器=LoggerFactory.getLogger (MyMetaObjectHandler.class);//插入操作时要填充的字段   @Override   公共空间insertFill (MetaObject MetaObject) {   LOGGER.info(“开始插入填充…”);//根据属性名字设置要填充的值   这一点。setFieldValByName (“createTime”,新的日期(),metaObject);   这一点。setFieldValByName(“updateTime”,新的日期(),metaObject);   }//更新操作时要填充的字段   @Override   公共空间updateFill (MetaObject MetaObject) {   LOGGER.info(“开始插入填充…”);   这一点。setFieldValByName(“updateTime”,新的日期(),metaObject);   }   }      之前      

<强> 3,插入数据测试

        @RunWith (SpringRunner.class)   @SpringBootTest   公开课CRUDTest {   @ autowired   私人usermap usermap;      @Test   公共空间testInsert () {   用户用户=新用户();   user.setName (“jack11”);   user.setAge (20);   user.setEmail (“4849111 @qq.com”);      int结果=userMapper.insert(用户);   System.out.println(结果);   System.out.println(用户);   }   }      之前      

<强> 4,修改数据测试

        @Test   公共空间testUpdate () {   用户用户=新用户();   user.setId (2 l);   user.setName(“成龙”);   int结果=userMapper.updateById(用户);   System.out.println(结果);   }      之前      

一次插入数据后,create_time和update_time都被填充了设置的时间,做更新操作后只有update_time的进行了填充修改。

  

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

Mybatis-Plus自动填充的实现示例