Mybatis-Plus 插件学习
Posted lemos
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mybatis-Plus 插件学习相关的知识,希望对你有一定的参考价值。
1.逻辑删除
在相应字段上添加注解
@TableLogic private Integer deleted;
说明:
使用mp自带方法删除和查找都会附带逻辑删除功能 (自己写的xml不会)
example 删除时 update user set deleted=1 where id =1 and deleted=0 查找时 select * from user where deleted=0
2.通用枚举类
比如一些状态属性
① 声明枚举
定义枚举
public enum AgeEnum implements IEnum<Integer> { ONE(1, "一岁"), TWO(2, "二岁"), THREE(3, "三岁"); private int value; private String desc; @Override public Integer getValue() { return this.value; } }
使用枚举
public class User{ /** * 名字 * 数据库字段: name varchar(20) */ private String name; /** * 年龄,IEnum接口的枚举处理 * 数据库字段:age INT(3) */ private AgeEnum age; /** * 年级,原生枚举(带{@link com.baomidou.mybatisplus.annotation.EnumValue}): * 数据库字段:grade INT(2) */ private GradeEnum grade; }
②配置扫描枚举
mybatis-plus: # 支持统配符 * 或者 ; 分割 typeEnumsPackage: com.baomidou.springboot.entity.enums ....
3.自动填充功能
自动填充,意味着就是设置默认值,不依赖数据库设置默认值,依赖程序实现。
定义填充方法
@Component public class MyMetaObjectHandler implements MetaObjectHandler { private static final Logger LOGGER = LoggerFactory.getLogger(MyMetaObjectHandler.class); @Override public void insertFill(MetaObject metaObject) { LOGGER.info("start insert fill ...."); this.setFieldValByName("operator", "Jerry", metaObject);//版本号3.0.6以及之前的版本 //this.setInsertFieldValByName("operator", "Jerry", metaObject);//@since 快照:3.0.7.2-SNAPSHOT, @since 正式版暂未发布3.0.7 } @Override public void updateFill(MetaObject metaObject) { LOGGER.info("start update fill ...."); this.setFieldValByName("operator", "Tom", metaObject); //this.setUpdateFieldValByName("operator", "Tom", metaObject);//@since 快照:3.0.7.2-SNAPSHOT, @since 正式版暂未发布3.0.7 } }
使用填充
public class User { // 注意!这里需要标记为填充字段 @TableField(.. fill = FieldFill.INSERT) private String fillField; .... }
fill 属性 可选值
public enum FieldFill { /** * 默认不处理 */ DEFAULT, /** * 插入填充字段 */ INSERT, /** * 更新填充字段 */ UPDATE, /** * 插入和更新填充字段 */ INSERT_UPDATE }
233
以上是关于Mybatis-Plus 插件学习的主要内容,如果未能解决你的问题,请参考以下文章
Mybatis-plus工具学习笔记---[常用注解,条件构造器,插件使用]
Mybatis-Plus:代码生成器(通过 AutoGenerator快速生成 EntityMapperXMLServiceController代码)MybatisX 快速开发插件