mybatis-plus版本
com.baomidou mybatis-plus-boot-starter 3.5.1
mybatis-plus配置
@Configuration
public class MybatisPlusConfig {
static List tableList(){
List tables = new ArrayList<>();
//表名
tables.add("TestUser");
return tables;
}
//拦截器,获取到表名给替换
@Bean
public MybatisPlusInterceptor dynamicTableNameInnerInterceptor() {
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
DynamicTableNameInnerInterceptor dynamicTableNameInnerInterceptor = new DynamicTableNameInnerInterceptor();
dynamicTableNameInnerInterceptor.setTableNameHandler((sql, tableName) -> {
String newTable = null;
for (String table : tableList()) {
newTable = RequestDataHelper.getRequestData(table);
if (table.equals(tableName) && newTable!=null){
tableName = newTable;
break;
}
}
return tableName;
});
interceptor.addInnerInterceptor(dynamicTableNameInnerInterceptor);
return interceptor;
}
}
请求参数传递辅助类
public class RequestDataHelper {
private static final ThreadLocal
使用
@Test
public void test1() {
RequestDataHelper.setRequestData(new HashMap() {{
put("TestUser", "TestUser_" + "2022_05");
}});
//表名会被动态替换成"TestUser_2022_05"
//如果实际表名与实体类与不同,可先在实体类类注明表名@TableName("TestUser")
List users= userDao.selectList(null);
System.out.println(users);
}



