mybatis-plus数据隔离
时间: 2023-11-28 08:44:37 浏览: 156
基于mybatis-plus实现多租户级别的数据隔离
Mybatis-Plus提供了多租户的支持,可以通过配置和代码两种方式实现数据隔离。其中,配置方式可以通过yml文件进行配置,代码方式可以通过MybatisTenantContextHolder设置当前线程标志位实现。具体实现步骤如下:
1. 配置方式:
在yml文件中添加如下配置:
```
mybatis-plus:
global-config:
db-config:
# 忽略多租户的表
ignore-tenant-tables: user_info,user1
# 多租户字段名
tenant-column: tenant_id
# 多租户id类型
tenant-id-type: long
# 多租户id值
tenant-id: 1
```
其中,ignore-tenant-tables表示忽略多租户的表,tenant-column表示多租户字段名,tenant-id-type表示多租户id类型,tenant-id表示多租户id值。
2. 代码方式:
在代码中使用MybatisTenantContextHolder设置当前线程标志位实现多租户数据隔离。具体实现步骤如下:
```
// 设置当前线程标志位
MybatisTenantContextHolder.set(TenantContext.builder().noTenant(true).build());
// 执行需要进行多租户数据隔离的操作
reportCommitInnerService.commit();
// 清除当前线程标志位
MybatisTenantContextHolder.clear();
```
其中,noTenant表示不进行多租户数据隔离,可以根据实际情况进行修改。
阅读全文