JAVA全系列 教程
3762个小节阅读:7090.2k
目录
C语言快速入门
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
由于有了逻辑删除字段,那么向数据库插入数据时候,都需要设置deleted=0,而每次插入数据时都要设置该值十分繁琐,于是MyBatisPlus提供了自动填充功能。
为实体类的自动填充字段添加@TableField
xxxxxxxxxx
@TableLogic
// 自动填充字段
@TableField(fill = FieldFill.INSERT)
private Integer deleted;
填充策略:
值 | 描述 |
---|---|
DEFAULT | 默认不处理 |
INSERT | 插入操作填充字段 |
UPDATE | 更新操作填充字段 |
INSERT_UPDATE | 插入操作和更新操作均填充字段 |
自定义填充类实现MetaObjectHandler接口
xxxxxxxxxx
@Component
public class MyMetaObjectHandler implements MetaObjectHandler {
/**
* 插入时填充逻辑
* @param metaObject 元对象
*/
@Override
public void insertFill(MetaObject metaObject) {
/**
* 参数1:填充字段名
* 参数2:参数值
* 参数3:元对象
*/
this.setFieldValByName("deleted", 0, metaObject);
}
/**
* 更新时填充逻辑
* @param metaObject
*/
@Override
public void updateFill(MetaObject metaObject) {
}
}
测试插入方法
xxxxxxxxxx
@Test
public void testAdd2(){
Student student = new Student();
student.insert();
}
1. 在MyBatis中,使用自动填充功能需要自定义填充类实现接口
A MetaObjectHandler
B MetaObject
C MetaHandler
D ObjectHandler
1=>A