官网 文档 github MybatisPlusApplication.java
mapper
接口继承BaseMapper<T>
即可使用mybatis-plus功能。UserMapper.java- 实体类添加
@TableName
、@TableId
、@TableField
注解。User.java
使用insert
、deleteXXX
、updateXXX
、selectXXX
进行。
BaseMain.java
- QueryWrapper/UpdateWrapper: 字符串字段查询(查询、删除)/更新操作。WrapperMain.java
- LambdaQueryWrapper/LambdaUpdateWrapper: 类字段查询(查询、删除)/更新操作。WrapperLambdaMain.java LambdaWrapperMain.java
可以直接使用实体对象操作。
依然需要定义Mapper
文件,即便不在代码中显式使用
mybatis提供的插件,需要手动配置开启
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor() {
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
interceptor.addInnerInterceptor(xxx);
return interceptor;
}
部分插件需添加依赖
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-jsqlparser</artifactId>
<version>3.5.10</version>
</dependency>
- TenantLineInnerInterceptor: 多租户。TenantMain.java
- PaginationInnerInterceptor: 分页。PageMain.java
- DynamicTableNameInnerInterceptor: 动态表名。DynamicTableMain.java
- OptimisticLockerInnerInterceptor: 乐观锁。LockMain.java
- BlockAttackInnerInterceptor: 防止全表更新或删除。
- DataPermissionInterceptor: 数据权限。
- ReplacePlaceholderInnerInterceptor。
自定义全局方法
- 创建方法类,继承
com.baomidou.mybatisplus.core.injector.AbstractMethod
, 并实现对应SQL脚本代码。该类对应一个方法。MyAbstractMethod.java - 创建配置类,继承
com.baomidou.mybatisplus.core.injector.DefaultSqlInjector
,注入创建的方法类。MySqlInjector.java - 创建接口,继承
com.baomidou.mybatisplus.core.mapper.BaseMapper
, 并增加方法类对应的方法。InjectorMapper.java - 业务接口即可继承该接口,调用对应方法。