com.baomidou.mybatisplus.extension.plugins.handler.TenantLineHandler#ignoreTable用法
时间: 2023-09-29 14:09:33 浏览: 48
com.baomidou.mybatisplus.extension.plugins.handler.TenantLineHandler#ignoreTable 是 Mybatis-Plus 框架中租户插件的一个配置项,用于控制是否忽略某些表的租户信息处理。
在 Mybatis-Plus 的配置文件中,可以通过以下方式来配置 ignoreTable:
```
mybatis-plus:
global-config:
db-config:
# 设置租户插件
logic-not-delete-value: 0
tenant-handler: com.baomidou.mybatisplus.extension.plugins.handler.TenantLineHandler
tenant-line-arguments: tenantId
ignore-tables: table1, table2
```
其中,ignore-tables 可以配置一个或多个表名,多个表名之间使用逗号分隔。如果忽略了某个表,则在操作该表时将不会进行租户信息的填充和过滤。
需要注意的是,ignoreTable 配置项只对当前数据源生效,如果使用了多数据源,则需要在每个数据源的配置文件中都进行相应的配置。
相关问题
com.baomidou.mybatisplus.extension.plugins.handler.TenantLineHandler用法实现
com.baomidou.mybatisplus.extension.plugins.handler.TenantLineHandler 是 Mybatis-Plus 框架中的租户件,用于实现租户数据隔离下面是简单的示例:
1.义租户实体类首先,需要定义租户实体类,于存储租户信息。该实体类需要实现 ITenant 接口,示例代码如下:
```
public class Tenant implements ITenant {
private Long tenantId;
@Override
public Long getTenantId() {
return tenantId;
}
@Override
public void setTenantId(Long tenantId) {
this.tenantId = tenantId;
}
}
```
2. 实现 TenantLineHandler 类
接着,需要实现 TenantLineHandler 类,该类用于实现租户信息的填充和过滤。示例代码如下:
```
public class MyTenantLineHandler implements TenantLineHandler {
@Override
public Expression getTenantId() {
// 从当前线程中获取租户信息
Tenant tenant = TenantContext.getTenant();
if (tenant != null) {
return new LongValue(tenant.getTenantId());
} else {
return null;
}
}
@Override
public String getTenantIdColumn() {
// 返回租户id对应的数据库列名
return "tenant_id";
}
@Override
public boolean ignoreTable(String tableName) {
// 判断是否忽略某个表
return false; // 不忽略任何表
}
}
```
其中,getTenantId() 方法用于获取当前租户的租户id,getTenantIdColumn() 方法用于返回租户id在数据库中对应的列名,ignoreTable() 方法用于判断是否忽略某个表的租户信息处理。
3. 配置 Mybatis-Plus
最后,需要在 Mybatis-Plus 的配置文件中配置 TenantLineHandler。示例配置如下:
```
mybatis-plus:
global-config:
db-config:
# 设置租户插件
logic-not-delete-value: 0
tenant-handler: com.example.demo.handler.MyTenantLineHandler
tenant-line-arguments: tenantId
```
其中,tenant-handler 指定了 TenantLineHandler 的实现类,tenant-line-arguments 指定了租户id在实体类中的属性名。配置完成后,就可以在 DAO 层的 SQL 语句中使用 ${tenantId} 占位符来代表当前租户的租户id。
com.baomidou.mybatisplus.extension.plugins.pagination;
com.baomidou.mybatisplus.extension.plugins.pagination 是 MyBatis-Plus 框架中的一个扩展插件,用于实现分页功能。它可以与其他插件一起使用,如 PaginationInterceptor、PerformanceInterceptor、OptimisticLockerInterceptor、SqlExplainInterceptor 等等。其中,PaginationInterceptor 是用于拦截分页查询并自动处理分页参数的插件。PerformanceInterceptor 是一个性能分析插件,可以用于监控 SQL 执行性能并输出相应的日志。OptimisticLockerInterceptor 是一个乐观锁插件,用于在更新操作时进行乐观锁的版本控制。SqlExplainInterceptor 是一个 SQL 执行计划分析插件,可以用于分析 SQL 语句的执行计划并输出相应的日志。<span class="em">1</span><span class="em">2</span><span class="em">3</span><span class="em">4</span>