@Configuration
@MapperScan("com.mapper*")
public class MybatisPlusConfig {
/**
* 动态表名处理
* @return
*/
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor() {
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
DynamicTableNameInnerInterceptor dynamicTableNameInnerInterceptor =
new DynamicTableNameInnerInterceptor();
// 设置动态表名为【基础表名_year_month】
dynamicTableNameInnerInterceptor.setTableNameHandlerMap(
new HashMap<String, TableNameHandler>(2) {{
put("tb_tablename", (sql, tableName) -> {
int year = Calendar.getInstance().get(Calendar.YEAR);
int month = Calendar.getInstance().get(Calendar.MONTH)+1;
String monthString = "";
if(month<10){
monthString = "0"+month;
}else {
monthString = String.valueOf(month);
}
return tableName + "_" + year + "_" + monthString;
});
}});
// 设置动态表名拦截器
interceptor.addInnerInterceptor(dynamicTableNameInnerInterceptor);
return interceptor;
}
}
注意:
- @Configuration注解不可丢
- @MapperScan配置需要扫描的包