栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

MybatisPlus字段填充(springboot)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

MybatisPlus字段填充(springboot)

MybatisPlus字段填充

网站上有很多这样的教程,实现metaObjectHandler接口,类中加上注释就好了,但是用@Bean修饰的时候该怎么使用呢,我大概整理了一下:
首先先实现接口,很多教程都写的很详细,我就按照我的理解写一次,有什么不对的请多多指正。
**自定义MyBatisPlusmetaObjectHandler **

    @Slf4j
    public class MyBatisPlusmetaObjectHandler implements metaObjectHandler {
		private final String DATE_CLASS_NAME = "class java.util.Date";
    @Override
    public void insertFill(metaObject metaObject) {
        try {
            String createType = metaObject.getGetterType(CREATE_TIME).toString();
            if (DATE_CLASS_NAME.equals(createType)) {
                // 设置createTime(baseEntity)
                setValue(metaObject, CREATE_TIME, new Date());
            } else {
                setValue(metaObject, CREATE_TIME, (int) (System.currentTimeMillis() / 1000));
            }
            String updateType = metaObject.getGetterType(UPDATE_TIME).toString();
            if (DATE_CLASS_NAME.equals(updateType)) {
                // 设置createTime(baseEntity)
                setValue(metaObject, UPDATE_TIME, new Date());
            } else {
                setValue(metaObject, UPDATE_TIME, (int) (System.currentTimeMillis() / 1000));
            }
        } catch (ReflectionException e) {
            log.warn("CustommetaObjectHandler处理过程中无相关字段,不做处理");
        }
    }

    @Override
    public void updateFill(metaObject metaObject) {
        try {
            String updateType = metaObject.getGetterType(UPDATE_TIME).toString();
            if (DATE_CLASS_NAME.equals(updateType)) {
                // 设置createTime(baseEntity)
                setValue(metaObject, UPDATE_TIME, new Date());
            } else {
                setValue(metaObject, UPDATE_TIME, (int) (System.currentTimeMillis() / 1000));
            }
        } catch (ReflectionException e) {
            log.warn("CustommetaObjectHandler处理过程中无相关字段,不做处理");
        }
    }
}
用到的枚举类型
    String UPDATE_TIME = "updateTime";
    String CREATE_TIME = "createTime";

在配置文件中注册@bean

@Configuration
@AutoConfigureBefore(MybatisPlusAutoConfiguration.class)
public class GunsMyBatisPlusConfiguration {

    
    @Bean
    public metaObjectHandler metaObjectHandler() {
        return new MyBatisPlusmetaObjectHandler();
    }

}

在类中加入TableField注解

@TableField(value = "create_time",fill = FieldFill.INSERT)
	private Integer createTime;

	@TableField(value = "update_time",fill = FieldFill.INSERT_UPDATE)
	private Integer updateTime;

在执行插入或者更新的时候会自动的把时间填充进去

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/759980.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号