听说MyBatis-Plus可以实现自动填充,你会吗?
🏆本文收录于《Spring Boot从入门到精通》,专门攻坚指数提升,2023 年国内最系统+最强(更新中)。
本专栏致力打造最硬核Spring Boot 系列教程,从零基础到进阶系列学习内容,🚀均为全网独家首发,打造精品专栏,专栏持续更新中…欢迎大家订阅持续学习。
环境说明:Windows10 + Idea2021.3.2 + Jdk1.8 + SpringBoot 2.3.1.RELEASE
前言
MyBatis-Plus是一个基于MyBatis的增强工具,在MyBatis的基础上,提供了许多高效实用的功能,其中就包括自动填充功能。自动填充功能可以在插入或更新记录时,自动填充一些字段的值,如创建时间和更新时间。本文将介绍MyBatis-Plus自动填充功能的实现方法。
摘要
本文将介绍MyBatis-Plus自动填充功能的实现方法,包括:
- 自定义填充处理器
- 添加自动填充字段及其属性
- 配置自动填充处理器
正文
自定义填充处理器
自定义填充处理器需要实现MyMetaObjectHandler接口,并重写其方法。其中,有两个方法需要特别注意:
- insertFill:在插入记录时调用,用于填充插入记录的字段值。
- updateFill:在更新记录时调用,用于填充更新记录的字段值。
以创建时间和更新时间为例,代码如下:
@Component
public class MyMetaObjectHandler implements MetaObjectHandler {
@Override
public void insertFill(MetaObject metaObject) {
// 设置创建时间和更新时间
this.setFieldValByName("gmtCreate", new Date(), metaObject);
this.setFieldValByName("gmtModified", new Date(), metaObject);
}
@Override
public void updateFill(MetaObject metaObject) {
// 设置更新时间
this.setFieldValByName("gmtModified", new Date(), metaObject);
}
}
添加自动填充字段及其属性
在实体类中添加自动填充字段及其属性,即在创建时间和更新时间字段上添加@TableField注解,并设置fill属性为FieldFill.INSERT或FieldFill.INSERT_UPDATE。
@Data
public class User {
@TableId(type = IdType.AUTO)
private Long id;
@TableField(fill = FieldFill.INSERT)
private Date gmtCreate;
@TableField(fill = FieldFill.INSERT_UPDATE)
private Date gmtModified;
private String name;
private Integer age;
}
配置自动填充处理器
在MyBatis的配置文件中配置自动填充处理器,即在GlobalConfig中设置metaObjectHandler属性为自定义填充处理器的实例。
<bean id="globalConfig" class="com.baomidou.mybatisplus.core.config.GlobalConfig">
<property name="metaObjectHandler" ref="myMetaObjectHandler"/>
</bean>
<bean id="myMetaObjectHandler" class="com.example.MyMetaObjectHandler"/>
至此,就完成了MyBatis-Plus自动填充功能的实现。
测试用例
在测试代码中插入一条记录,如下所示:
@Test
public void testInsert() {
User user = new User();
user.setName("张三");
user.setAge(18);
userMapper.insert(user);
System.out.println(user.getId());
}
该记录的创建时间和更新时间字段将会被自动填充。
全文小结
本文介绍了MyBatis-Plus自动填充功能的实现方法,包括自定义填充处理器、添加自动填充字段及其属性、配置自动填充处理器。自动填充功能能够简化开发流程,提高开发效率,希望本文能对大家有所帮助。
附录源码
如上涉及所有源码均已上传同步在「GitHub」,提供给同学们一对一参考学习,辅助你更迅速的掌握。
☀️建议/推荐你
无论你是计算机专业的学生,还是对编程有兴趣的小伙伴,都建议直接毫无顾忌的学习此专栏「滚雪球学Spring Boot」,从入门到精通,凡是学习此专栏的同学,均能获取到所需的知识和技能,全网最快速入门SpringBoot,就像滚雪球一样,越滚越大,指数级提升。
最后,如果这篇文章对你有所帮助,帮忙给作者来个一键三连,关注、点赞、收藏,您的支持就是我坚持写作最大的动力。
同时欢迎大家关注公众号:「猿圈奇妙屋」 ,以便学习更多同类型的技术文章,免费白嫖最新BAT互联网公司面试题、4000G pdf电子书籍、简历模板、技术文章Markdown文档等海量资料。
📣关于我
我是bug菌,CSDN | 掘金 | InfoQ | 51CTO 等社区博客专家,历届博客之星Top30,掘金年度人气作者Top40,51CTO年度博主Top12,华为云 | 阿里云| 腾讯云等社区优质创作者,全网粉丝合计15w+ ;硬核微信公众号「猿圈奇妙屋」,欢迎你的加入!免费白嫖最新BAT互联网公司面试题、4000G pdf电子书籍、简历模板等海量资料。
- 点赞
- 收藏
- 关注作者
评论(0)