基础使用
使用步骤
引入依赖
自己的mapper接口继承BaseMapper
我们可以看到(下图)baseMapper有着一系列的基础数据库操作

实体类配置
MybatisPlus通过以下实现CRUD数据库表信息
•默认以类名驼峰转下划线作为表名
•默认把名为id的字段作为主键
•默认把变量名驼峰转下划线作为表的字段名
MybatisPlus的常用注解:
•@TableName:指定表名称及全局配置
•@TableId:指定id字段及相关配置
•@TableField:指定普通字段及相关配置
@TableField的常见场景:
•成员变量名与数据库字段名不一致
•成员变量名以is开头,且是布尔值
•成员变量名与数据库关键字冲突
•成员变量不是数据库字段
yaml配置
mybatis-plus:
#注册别名后,就不用在xml中写全路径名称了
type-aliases-package: com.itheima.mp.domain.po
# 其它很多配置都不用配置,使用默认值即可
mybatisPlus不仅实现了一些基础的单表查询mapper,甚至提供了service接口,借助该接口能够完成一些基础业务
IService
通过一个接口和一个实现类来协调完成这些基础功能的实现


扩展插件
逻辑删除
直接再yaml中配置,配置完成后,原来删除方法如,deleteById,就会执行逻辑删除
mybatis-plus:
global-config:
db-config:
# 逻辑删除字段名(在数据表中的)
logic-delete-field: deleted
# 逻辑已删除值(默认为 1)
logic-delete-value: 1
# 逻辑未删除值(默认为 0)
logic-not-delete-value: 0
JSON处理器
能够将数据库中存储的json数据,解析为对象
步骤:1.注入字段使用注解;2.创建实体类
@Data
@TableName(value = "user", autoResultMap = true)
public class User {
...
/**
* 详细信息
*/
@TableField(typeHandler = JacksonTypeHandler.class)
private Map<String, Object> info;
...
}
@Data
@AllArgsConstructor(staticName = "of") //便于静态构造创建对象
@NoArgsConstructor
public class UserInfo {
private Integer age;
private String intro;
private String gender;
}
分页插件
单独的分页插件依赖
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-jsqlparser</artifactId>
<version>3.5.14</version>
</dependency>
配置基于拦截器的分页
package com.itheima.mp.config;
import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import org.springframework.context.annotation.Configuration;
@Configuration
public class MybatisConfig {
public MybatisPlusInterceptor mybatisPlusInterceptor() {
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
PaginationInnerInterceptor pageInterceptor = new PaginationInnerInterceptor(DbType.MYSQL);
interceptor.addInnerInterceptor(pageInterceptor);
return interceptor;
}
}
