注意:方案的数据库mapper层采用的是tk.mybatis
maven依赖
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.3.2</version>
</dependency>
<dependency>
<groupId>com.github.jsqlparser</groupId>
<artifactId>jsqlparser</artifactId>
<version>4.5</version>
</dependency>
<dependency>
<groupId>tk.mybatis</groupId>
<artifactId>mapper-spring-boot-starter</artifactId>
<version>2.1.5</version>
<exclusions>
<exclusion>
<artifactId>mybatis</artifactId>
<groupId>org.mybatis</groupId>
</exclusion>
</exclusions>
</dependency>
多租户插件类 MultiTenantPlugin
public class MultiTenantPlugin implements Interceptor{
private static PaginationInterceptor paginationInterceptor = new PaginationInterceptor();
private static Set<String> multiTenantTable = new HashSet<>();
@Value("${multi.tenant.table:}")
private String multiTenantTables;
@Value("${multi.tenant.enable:}")
private boolean multiTenantEnable;
@PostConstruct
public void afterPropertiesSet() {
if (multiTenantEnable) {
initMultiTenantTable();
initTenantSqlParser();
}
}
/**
* 初始化多租户Dao层sql相关转换器
*/
private void initTenantSqlParser() {
List<ISqlParser> sqlParserList = new ArrayList<>();
TenantSqlParser tenantSqlPars