一、集成
1.导入相关依赖
<!--mysql-->
<dependency>
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>
</dependency>
<!--mybatis-plus-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.2</version>
</dependency>
注意:由于springboot中本身配置了mysql的版本号,所以在这里不需要再次设置
2.配置yml文件
(这里可以删除自带的配置文件,然后自己添加yml格式的)
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:8080/hongyan_sso?useUnicode=true&characterEncoding=utf-8
username: root
password: qcby6666
到这里,就已经集成mybatisplus成功了,可以启动一下进行测试
二、使用
下面我们来看看一部分常用的mp功能:
1.非法sql拦截(不带where的sql语句)
针对 update 和 delete 语句 作用: 阻止恶意的全表更新删除
添加mp的配置类,在该类中添加以下内容(这是官网为我们写好的)
@Configuration
public class MybatisPlusConfig {
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor() {
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
interceptor.addInnerInterceptor(new BlockAttackInnerInterceptor());
return interceptor;
}
}
2.配置逻辑删除
只对自动注入的 sql 起效:
- 插入: 不作限制
- 查找: 追加 where 条件过滤掉已删除数据,如果使用 wrapper.entity 生成的 where 条件也会自动追加该字段
- 更新: 追加 where 条件防止更新到已删除数据,如果使用 wrapper.entity 生成的 where 条件也会自动追加该字段
- 删除: 转变为 更新
例如:
- 删除:
update user set deleted=1 where id = 1 and deleted=0
- 查找:
select id,name,deleted from user where deleted=0
第一步:配置yml文件
mybatis-plus:
global-config:
db-config:
logic-delete-field: flag # 全局逻辑删除的实体字段名(since 3.3.0,配置后可以忽略不配置步骤2)
logic-delete-value: 1 # 逻辑已删除值(默认为 1)
logic-not-delete-value: 0 # 逻辑未删除值(默认为 0)
第二步:在实体类上加@TableLogic注解
@TableLogic
private Integer deleted;
3.id自动生成策略:(使用下面这个注解)
/**
* id
*/
@TableId(type = IdType.ASSIGN_ID)
private Long id;
其实常用的方法还有很多,这里就不一一介绍了,可以自行查看官方文档学习MyBatis-Plus