MyBatisPlus动态表名查询方案(利用MySQL视图实现)
创作时间:
作者:
@小白创作中心
MyBatisPlus动态表名查询方案(利用MySQL视图实现)
引用
1
来源
1.
https://mysql360.com/2024/10/03/zongjie/2390/
在使用MyBatisPlus进行数据库操作时,有时会遇到需要根据规则查询不同月份表的情况。例如,表名可能以table_name_2024_05的形式存在。为了解决这一问题,本文介绍了一种通过创建和动态重建MySQL视图来实现动态表名查询的方案。
解决方案概述
创建视图:在数据库中创建一个视图
table_name_v,它对应于一个基础表table_name,因为所有相关表结构相同。动态重建视图:在查询前,根据业务需求动态重建视图,使其指向正确的表。
代码实现
实体类示例
@TableName("table_name_v")
public class TableNameV extends BaseEntity {
private static final long serialVersionUID = 1L;
@TableId
private Integer id;
private String name;
}
Mapper接口
public interface TableNameVMapper extends BaseMapper<TableNameV> {
@Select("create or replace view table_name_v as " +
"select id, name from ${tableName}")
void createView(String tableName);
}
服务层代码
public class TableNameVServiceImpl implements ITableNameVService {
@Autowired
TableNameVMapper tableNameVMapper;
@Override
public Map selectList(TableNameV tableNameV) {
String id = "2024_05";
String tableName = "table_name_" + id;
// 动态创建视图,指向对应分表
tableNameVMapper.createView(tableName);
// 业务代码...
}
}
通过这种方式,可以避免复杂的配置,实现MyBatisPlus中实体对应的表名动态变化。
热门推荐
湖南师大附小开课教长沙话:方言课堂里的文化传承
2025蛇年春晚首次联排:创新节目+豪华阵容,这场视听盛宴值得期待!
2025湖南卫视春晚:非遗元素创新演绎,明星阵容点亮小年夜
古生物研究新发现:揭秘恐龙时代的秘密
白垩纪大灭绝:一颗来自木星轨道之外的碳质小行星如何改变地球命运
200万年前的环境剧变:人类进化的关键转折点
金庸笔下第一高手独孤求败,他的境界到底有多高?
独孤求败:武侠世界中的武学巅峰
苏-35战机:推力矢量技术的空中霸主?
歼-20战斗机:矢量引擎黑科技大揭秘!
国内等离子手术设备:从“追赶”到“领跑”的创新之路
从宇宙观的发展探源中华文明
火车硬卧VS软卧:谁更舒适?
为什么说大众Polo Plus比很多车都更安全
多次碰撞预防系统:关键时刻的“救命稻草”
读中华文化经典,中国古代神话故事阅读指南
《黑神话:六样情》:用动画传承发扬中国文化
三维扫描技术揭秘恐龙真貌
最新恐龙化石发现揭示远古生态秘密
大年初九“天公日”,这天有“3要3不要”,看完后要牢记在心中
春节与立春:古人的时空观
南北立春大不同:大连鞭扇舞 vs 灵川走牌灯
青藏铁路软卧:高原旅行的最佳选择
第一次坐火车软卧?这些小技巧你必须知道!
凭哭戏征服观众,22年前播出的TVB《封神榜》,它到底有多出色?
凭哭戏征服观众,22年前播出的TVB《封神榜》,它到底有多出色?
湖南师大附小开设方言课:让“这是什么”唤醒文化记忆
《封神第一部》获金鸡奖9项提名:特效与文化的双重突破
《封神三部曲》特效背后的AI黑科技揭秘
步氏巨猿灭绝之谜:对现代生态保护的启示