多租户(Multi-Tenant)
MyBatis-Plus 提供多租户支持,通过租户解析器(TenantSqlParser)或自定义拦截器实现,在 SQL 层面自动注入租户字段条件。
简单示例
java
@Bean
public TenantLineInnerInterceptor tenantLineInnerInterceptor(){
return new TenantLineInnerInterceptor(new TenantLineHandler() {
@Override
public Expression getTenantId() {
// 从上下文获取当前租户 ID
return new LongValue(CurrentTenantHolder.get());
}
@Override
public String getTenantIdColumn() {
return "tenant_id";
}
@Override
public boolean ignoreTable(String tableName) {
// 忽略某些表
return false;
}
});
}注意
- 多租户策略要考虑索引与性能,建议在
tenant_id上建立索引。 - 对于共享数据库多租户,需确保 SQL 中不会绕过租户条件。