Mybatis-plus实现动态表名查询
数据库表结构如图所示,现在需要对表进行动态查询,根据自定义的算法找到我们需要查询的表名序号。
MybatisPlusConfig配置:
@Configuration
public class MybatisPlusConfig {
public static ThreadLocal<String> myTableName = new ThreadLocal<>();
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor() {
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
DynamicTableNameInnerInterceptor dynamicTableNameInnerInterceptor = new DynamicTableNameInnerInterceptor();
HashMap<String, TableNameHandler> map = new HashMap<String, TableNameHandler>(2) {{
put("t_messages", (sql, tableName) -> {
return myTableName.get();
});
}};
dynamicTableNameInnerInterceptor.setTableNameHandlerMap(map);
interceptor.addInnerInterceptor(dynamicTableNameInnerInterceptor);
return interceptor;
}
}
使用方式,在列表查询前进行动态注入表名即可。
t_message:表示数据库表名
String t_messages = APiUtil.getTableName("t_message", YEAR, MONTH);
MybatisPlusConfig.myTableName.set(t_messages);
List<Messages> list = messagesMapper.selectList(queryWrapper);
作者:YangRoc
出处:https://www.cnblogs.com/YangRoc/p/17186614.html
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!