?点 Stephen 关 注 我
这是 Stephen 的第 77 篇原创文章
哈喽,大家好,我是 Stephen,一个毕业三年后自学 Java 编程入行的程序员。
今天介绍一个 MyBatis-Plus 使用中的小知识 —— Mybatis-Plus 公共字段自动填充的配置和使用。
这个小知识我在博客中分享过,阅读量上六千,可见使用到这个技术知识的伙伴有不少。
1、使用场景
例如:我们在插入和修改数据的时候,插入和修改时间是公共必须的,如果每次操作都手工 set 时间是很重复的编码工作,这种情况下如果自动填充时间就能简化代码,提高编码效率,达到不加班,早点回家吃饭的目的(皎洁的微笑)。
我们做些必要的配置和注解就可以实现自动填充时间了。
2、配置说明
compile("com.baomidou:mybatis-plus-boot-starter:3.0.7.1")
本文使用的版本:mybatis-plus 3.0.7.1,不同版本填充处理器可能有所不同!低版本有的是extends MetaObjectHandler 而不是 implements MetaObjectHandler 来创建填充处理器。
3、创建填充处理器:MetaObjectHandlerConfig.java
@Componentpublic class MetaObjectHandlerConfig implements MetaObjectHandler { @Override public void insertFill(MetaObject metaObject) { Date now = new Date(); setFieldValByName("createDate", now, metaObject); } @Override public void updateFill(MetaObject metaObject) { Date now = new Date(); this.setFieldValByName("modifyDate", now, metaObject); }
4、配置填充处理器
public MybatisSqlSessionFactoryBean sqlSessionFactory(@Qualifier("primaryDataSource") DataSource dataSource) throws IOException { MybatisSqlSessionFactoryBean mybatisPlus = new MybatisSqlSessionFactoryBean(); //加载数据源 mybatisPlus.setDataSource(dataSource); //全局配置 GlobalConfig globalConfig = new GlobalConfig(); //配置填充器 globalConfig.setMetaObjectHandler(new MetaObjectHandlerConfig()); mybatisPlus.setGlobalConfig(globalConfig); return mybatisPlus; }
5、使用时,设置需要填充字段的填充类型
/** 创建时间* */@TableField(fill = FieldFill.INSERT)private LocalDateTime createDate;/** 修改时间* */@TableField(fill = FieldFill.UPDATE)private LocalDateTime modifyDate;
这样配置之后,就不再需要手工 set createDate 和 modifyDate 字段时间,程序自动填充时间。
下期我们再见!
-- end --
推荐阅读:
Windows 下安装 RabbitMQ
MySQL 安装(Windows 环境)
Oracle 安装 + PL/SQL配置使用
Windows 下 Python 开发环境搭建
Vue 开发环境搭建
喜欢就点个"三连"咯
点击
关注 Stephen,一起学习,一起成长。