Mybatis-plus使用备注
本学习文档主要介绍mybatis-plus这款工具在SpringBoot项目中的使用方法和技巧,包括引入、配置、使用以及扩展进行汇总整理;
Mybatis-plus基本使用
在SpringBoot项目中使用Mybatis-plus
引入mybatis-plus以及基础常用配置
通过Maven在pom.xml中引入mybatis-plus依赖(注意:在使用mybatis-plus时必须要有数据库的依赖,比如
mysql-connector-java依赖,至于数据源的依赖看项目具体需要)1
2
3
4
5<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.0</version>
</dependency>配置数据源(此处省略哈哈哈)
逻辑删除配置
1
2
3
4
5
6
7mybatis-plus:
# 逻辑删除配置
global-config:
db-config:
logic-delete-field: isDelete # 全局逻辑删除的实体字段名
logic-delete-value: 1 # 逻辑已删除值(默认为 1)
logic-not-delete-value: 0 # 逻辑未删除值(默认为 0)1
2
3//使用的是3.3.0版本以上的mybatis-plus时只需要配置上上面的,如果低于3.3.0版本还需要在逻辑删除的字段上加上如下配置
private int isDelete;实体类注解配置
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22//Lombok的注解可以帮我们生成get、set、equals、toString等方法
//当数据库表和实体名称不一样时,通过配置TableName注解配置实体对应的数据库表名
public class User {
//设置表的主键,通过配置type = IdType.AUTO,当我们插入一条数据时,id自增(数据库表需提前配置id自增),并会将新的id带回到对象中,方便我们使用updateById,deleteById等方法
private Long id;
//当表中的列名和字段名不对应时通弄过此注解进行映射
private String userId;
//mybatis-plus会认为数据库列名为下划线格式,而实体列名为驼峰命名式,所以在默认情况下上面的userId和下面的userName都不需要配置TableField注解
private String userName;
//逻辑删除注解
private int isDelete;
}
mybatis-plus使用
其实上面的实体类以及下面这些代码通过后面的Mybatis-X插件可以一键生成,完全不需要手写一句代码
Mapper(DAO)层继承BaseMapper
1
2public interface UserMapper extends BaseMapper<User> {
}Service接口继承IService
1
2
3//这里继承的IService中的泛型是实体类而不是DAO
public interface UserService extends IService<User> {
}Service实现层继承ServiceImpl并实现Service接口(记得加上Service注解)
1
2
3
4
//这里继承ServiceImpl中的第一个泛型是DAO,第二个才是实体类
public class UserServiceImpl extends ServiceImpl<UserMapper,User> implements UserService {
}
mybatis-plus条件构造器
1 | QueryWrapper<User> queryWrapper = new QueryWrapper<>(); |
MybatisX-Generator插件用法
在IDEA中连接好系统需要的数据库(好像只有Ultimate版才可以使用,教育版可以忽略了)
选择需要自动生成的数据库表(按住
Shift可以同时选择多个数据库表)右键选择好的数据库表,选择MybatisX-Generator
然后就出现了这一页,选择需要生成的项目,假如数据库表的字段是下划线格式,并且我们要生成的实体代码字段是驼峰式,这一步正常情况下可以next了,当然也可以配置父类、表前缀后缀、变量前缀后缀等等信息,生成的位置建议就是默认的位置,而不是最终代码所在的位置,不然有可能会影响系统的代码,后续再将生成的实体类手动移动到对应位置
根据项目的情况选择Mybatis-Plus版本以及Lombok就可以直接点finish了
生成的代码如图,只需要将generator中的代码文件直接复制到项目中即可,当生成的文件和我们需要的不相符时可以直接删除generator目录重新生成即可,这也是为什么不将生成的代码直接放进项目中对应的包下的原因

