1. pom.xml
引入依赖
MybatisPlus的starter集成了Mybatis和MybatisPlus的所有功能
代码:
<dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.5.3.1</version></dependency>
2. mapper
自定义Mapper继承MybatisPlus提供的BaseMapper接口:
注意BaseMapper<T>的泛型要指定所操作的实体类的类型
如下面的我们要对User实体类进行操作则继承BaseMapper<User>
示例:
public interface UserMapper extends BaseMapper<User>{
}
方法名:
insert() 新增
selectById() 查询
selectBatchIds() 批量查询
updateById() 更新
deleteById() 删除
3.数据库注解
MybatisPlus通过扫描实体类,反射获取实体类的信息作为数据库表的信息
这对数据库表的要求:
1.类名驼峰下划线作为表名
2.名为id的字段作为主键
3.变量名驼峰转下划线作为表的字段名
如果不满足以上的条件就需要使用相关的注解进行绑定
@TableName 指定表名
@TableId 用来指定表中主键字段的信息
如果主键自增使用格式:@TableId(value="id",type=IdType.AUTO)
@TableField 用来指定表中普通字段信息
如果数据库中不存在该字段则使用: @TableField(exist = false)
4. application.yml
代码:
spring:datasource:url: jdbc:mysql://127.0.0.1:3306/mp?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&serverTimezone=Asia/Shanghaidriver-class-name: com.mysql.cj.jdbc.Driverusername: rootpassword: 1234mybatis-plus:type-aliases-package: com.example.springbootdemo.pojomapper-locations: classpath*:/mapper/**/*.xmlconfiguration:map-underscore-to-camel-case: truecache-enabled: falseglobal-config:db-config:id-type: assign_idupdate-strategy: not_null
5.条件构造器
QueryWrapper 和 LambdaQueryWrapper构建select、delete、update的where条件
UpdateWrapper 和 LambdaUpdateWrapper只有set语句比较特殊时才使用
尽量使用LambdaQueryWrapper 和 LambdaUpdateWrapper,避免硬编码
6.service
自定义 Service 继承 MybatisPlus 提供的 IService 接口:
注意IService<T>的泛型要指定所操作的实体类的类型
如下面的我们要对User实体类进行操作则继承IService<User>
示例:
public interface IUserService extends IService<User>{
}
imple:
示例:
public class UserServiceImple extends ServiceImple<UserMapper,User> implements IUserService{}
Restful风格实现接口
接口 | 请求方式 | 请求路径 | 请求参数 | 返回值 |
新增用户 | POST | /user | 用户表单实体 | |
删除用户 | DELETE | /user/{id} | 用户id | |
修改用户 | PUT | /user/{id}/operation/{university} | 用户id 修改的学校 | |
查询用户 | GET | /user/{id} | 用户id | 用户VO |
批量查询用户 | GET | /user | 用户id集合 | 用户VO集合 |
Swagger依赖
<dependency><groupId>com.github.xiaoymin</groupId><artifactId>knife4j-openapi2-spring-boot-starter</artifactId><version>4.1.0</version></dependency>
IService批量添加
在MySQL中 将java的application.yml的url中将rewriteBatchedStatements=true
7.代码自动生成器插件
MyBatisPlus
8.逻辑删除
在application.yml中进行配置逻辑删除的实体字段
logic-delete-field 填写逻辑删除的实体字段名
logic-delete-value 填写逻辑已经删除的值(默认为1)
logic-not-delete-value 填写逻辑未删除的值 (默认为0)
mybatis-plus:global-config:db-config:logic-delete-field: flagDeletelogic-delete-value: 1logic-not-delete-value: 0
9.枚举处理器
(1)给枚举中与数据库对应value值添加@EnumValue注解
(2)在application.yml中加入:
mybatis-plus:configuration:default-enum-type-handler: com.baomidou.mybatisplus.core.handlers.MybatisEnumTypeHandler
9.JSON处理器
例如User表中存在Json类型的字段:
可以按照如下的方式进行处理:
(1)给User类加上@TableName(value="user",autoResultMap = true)注解
(2)给User表中相应的json类型字段加上@TableField(typeHandler = JacksonTypeHandler.class)注解
10.分页插件
PaginationInnerInterceptor