一、快速入门
1.1、使用
1、引入依赖
注意:引入了MP的依赖,就不用引Mybatis的依赖了,这个依赖已经包含了Mybatis的
1 | <dependency> |
2、定义Mapper
自定义的Mapper继承MybatisPlus提供的BaseMapper接口(要制定实体类的类型)
3、在实体类上添加注解声明表信息
4、在application.yml中根据需要添加配置
1.2、常见注解
MyBatisPlus通过扫描实体类,并基于反射获取实体类信息作为数据库表信息
约定:
- 类名驼峰转下划线作为表名
- 名为id的字段作为主键
- 变量名驼峰转下划线作为表的字段名
如果实体和表的对应关系不符合以上约定,就要用注解来配置了
- @TableName:用来指定表名
- @TableId:用来指定表中的主键字段信息
- @TableField:用来指定表中的普通字段信息
对于@TableId,IdType枚举可选类型有以下:
- AUTO:数据库自增长
- INPUT:通过set方法自行输入
- ASSIGN_ID:分配ID,接口ldentifierGenerator的方法nextld来生成id,默认实现类为雪花算法。这种方式由mp自动生成id
使用@TableField的常见场景:
- 成员变量名与数据库字段名不一致(如上图name)
- 成员变量名以is开头,且是布尔值(如上图isMarried)
- 成员变量名与数据库关键字冲突(如上图order)
- 成员变量不是数据库字段(如上图address)
二、核心功能
2.1、条件构造器
MyBatisPlus支持各种复杂的where条件,可以满足日常开发的所有需求。
第一步:构建查询条件
第二步:操作(查询更新等)
推荐还是用lambda的模式
QueryWrapper和LambdaQueryWrapper通常用来构建select、delete、update的where条件部分
UpdateWrapper和LambdaUpdateWrapper通常只有在set语句比较特殊才使用
尽量使用LambdaQueryWrapper和LambdaUpdateWrapper来避免硬编码
2.2、自定义SQL
MP擅长where条件的构建,因此我们可以利用MyBatisPlus的Wrapper来构建复杂的Where条件,然后自己定义SQL语句中剩下的部分。
- 基于Wrapper构建where条件
- 在mapper方法参数中用Param注解声明wrapper变量名称,必须是ew
- 自定义SQL,并使用Wrapper条件
2.3、Service接口
2.3.1、IService接口的基本使用
MP的Service接口使用流程是怎样的?
- 自定义Service接口继承IService接口
- 自定义Service实现类,实现自定义接口并继承Servicelmpl类