mybatis-plus:自动填充功能
时间:2022-07-23
本文章向大家介绍mybatis-plus:自动填充功能,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
mybatis-plus:自动填充功能
首先先了解一下那些需要自动填充,阿里巴巴开发手册建议每一张表都要有create_time和update_time字段
那么如果对每张表都去操作这两个字段的话会非常的繁琐,增加很多的工作量,人生苦短,干嘛要把时间花在这些重复且没有技术含量的东西上呢?
自动填充有两种实现方式,一种数据库层面实现,一种编程实现
先说说数据库层面如何实现,将创建时间(create_time)字段的默认值设置为:CURRENT_TIMESTAMP ,或者在sql中设置值,这大大的增加了数据库的压力,不建议这样使用(如果十分抗揍也不是不可以这样做)
编程实现:作为一个优秀的框架增强器,mybatis-plus肯定不希望开发人员把时间和精力花在重复的事情上,mybatis-plus提供了自动填充功能,
首先在pojo实体类中把需要填充的属性打上@TableField注解
@TableField(fill = FieldFill.INSERT)//写入时填充
private Date createTime;
@TableField(fill = FieldFill.INSERT_UPDATE)//更新和写入时填充
private Date updateTime;
打开枚举FieldFill可以看到填充的几个值
public enum FieldFill {
DEFAULT,//默认值,不处理
INSERT,//插入
UPDATE,//更新
INSERT_UPDATE;//插入和更新
private FieldFill() {
}
然后创建一个类实现MetaObjectHandler接口
@Slf4j
@Component
public class MyMetaObjectHandler implements MetaObjectHandler {
@Override
public void insertFill(MetaObject metaObject) {
//插入时的填充策略
log.info("start insert fill ....");
this.setFieldValByName("createTime",new Date(),metaObject);
this.setFieldValByName("updateTime",new Date(),metaObject);
}
//更新时的填充策略
@Override
public void updateFill(MetaObject metaObject) {
log.info("start update fill ....");
this.setFieldValByName("updateTime",new Date(),metaObject);
}
}
通过以上操作就可以实现自动填充功能了
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- opencv使用中出现的问题
- 人生苦短,我用k8s--------------Pod资源控制进阶管理
- 人生苦短,我用k8s--------------kuberctl命令合集
- Android使用Intent实现页面跳转
- Android实现单页显示3个Item的ViewPager炫酷切换效果
- Android用文件存储数据的方法
- Android编程监听APK安装与删除等过程的方法
- 人生苦短,我用k8s--------------详解yaml文件
- 排障集锦:九九八十一难之第二十难!-----使用jenkins镜像出现的问题Can not write to /var/jenkins_home/copy_reference_file.log.
- 人生苦短,我用k8s--------------secret和configmap的配置管理
- Go Colly抓取豆瓣电影Top250
- knative client 使用knative client 使用
- Java_web 学习1 Maven安装和使用2 mybatis的配置文件的详解mybatis缓冲mybatis注解延迟加载${} 与 #{} 区别【笔试题】
- Python3 的面向对象
- 【JVM】Int类型在栈中是否会被缓存?