在常用业务中有些属性需要配置一些默认值,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自动填充的实现示例