MyBatis-Plus-扩展功能

扩展功能

代码生成功能

Mybatis还是一个DBFirst的ORM开发框架,所以它具有强大代码生成器

MyBatisX

官方推荐使用MyBatisX作为代码生成的工具,在开发中我们也使用过很多次了

MyBatisPlus

一款代码生成软件

MyBatisCodeHelper-Pro

idea插件商店中评分最高的代码生成插件


静态工具

MybatisPlus还提供了Db静态工具,可以直接通过DB调用方法,将类字节码文件作为参数传递之后,可以直接对数据库进行增删改查


逻辑删除

逻辑删除可以手动实现,mybatis也提供配置以实现全局的逻辑删除操作

1
2
3
4
5
6
mybatis-plus:
global-config:
db-config:
logic-delete-field: flag # 全局逻辑删除的实体字段名,字段类型可以是boolean, integer
logic-delete-value: 1 # 逻辑已删除值(默认为 1)
logic-not-delete-value: 0 # 逻辑未删除值(默认为 0)

当配置好逻辑删除后,代码中调用.remove方法删除数据时,会默认使用逻辑删除操作


枚举处理器

配置枚举处理器

1
2
3
mybatis-plus:
configuration:
default-enum-type-handler: com.baomidou.mybatisplus.core.handlers.MybatisEnumTypeHandler

创建枚举类型

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
@Getter
public enum Status {
NORMAL(value: 1, desc: "正常"),
FROZEN(value: 2, desc: "停用"),
;

@EnumValue
private final int value;
@JsonValue
private final String desc;

UserStatus(int value, String desc) {
this.value = value;
this.desc = desc;
}
}

注:在使用此枚举类型的实体类对象(包括dto,vo)中将int类型更改为枚举类型

Mybatis在处理该属性时,会将@EnumValue注解修饰的值存入数据库,会将@JsonValue修饰的值作为json的返回值


JSON处理器

在开发过程中,如果数据库中储存了JSON格式的字段,那么对应JAVA会将其设置为String格式,String格式的数据我们取出来之后还需要手动的将其转换为对象

使用Mybatis的JSON处理器,可以直接实现实体类中属性和表中JSON字段的转换


插件

分页插件

MybatisPlus没有强制使用分页插件,所以可以继续使用PageHelper

或者使用MybatisPlus内置的拦截器分页插件

实体和工具方法

PageQuery和PageVO基本为固定类,可以单独定义

将PageQuery的参数提取出来,创建IPage对象

将IPage对象的内容重新封装回PageVo

这两个流程应该是相对固定,所以我们可以将其抽取出来作为静态工具方法



MyBatis-Plus-扩展功能
http://blog.170827.xyz/2025/06/05/MyBatis-Plus-扩展功能/
作者
XIAOBAI
发布于
2025年6月5日
许可协议