mybatisPlusInterceptor的用法
时间: 2024-06-11 08:07:09 浏览: 73
MybatisPlusInterceptor是Mybatis Plus提供的拦截器,可以用来拦截SQL语句的执行,实现一些自定义的操作,比如添加租户信息、动态表名等。
MybatisPlusInterceptor的用法如下:
1. 继承PerformanceInterceptor类,重写方法
```java
public class MybatisPlusInterceptor extends PerformanceInterceptor {
@Override
public boolean willDoQuery(Executor executor, MappedStatement ms, Object parameter, RowBounds rowBounds, ResultHandler resultHandler, BoundSql boundSql) {
// 在执行查询前,添加租户信息
TenantContextHolder.setTenantId(TenantContextHolder.getTenantId());
return true;
}
}
```
2. 在Mybatis Plus的配置类中添加拦截器
```java
@Configuration
public class MybatisPlusConfig {
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor() {
return new MybatisPlusInterceptor();
}
@Bean
public MybatisSqlSessionFactoryBean mybatisSqlSessionFactoryBean(DataSource dataSource, MybatisPlusInterceptor mybatisPlusInterceptor) throws Exception {
MybatisSqlSessionFactoryBean bean = new MybatisSqlSessionFactoryBean();
bean.setDataSource(dataSource);
bean.setPlugins(new Interceptor[]{mybatisPlusInterceptor});
return bean;
}
}
```
这样就可以在执行查询前添加租户信息了。需要注意的是,MybatisPlusInterceptor继承自PerformanceInterceptor,所以在配置拦截器时,需要将PerformanceInterceptor一起配置。
阅读全文