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中实体对应的表名动态变化。
热门推荐
别煽情是什么意思?
技术突飞猛进,我们如何理解自己的“存在”?
1996年属鼠人2025年运势及运程 1996年属鼠人2025年运势每月运势
中国女排澳门站失利引争议,王云蕗社交媒体言论引发热议
朱婷引领中国女排稳步前行,球队合作愈见默契
减压阀如何调节压力大小,装水管减压阀时注意事项有哪些
小规模纳税人开票账务处理指南
1080P、2K或4K,如何选择你的完美显示器?
木耳用温水泡10分钟可以吃吗 木耳要煮多久才熟
一文看懂《少年白马醉春风》人物关系,和《少年歌行》有何关联?
《少年白马醉春风》——群像绘卷,炽热青春之歌
七杀:揭秘古代七种主要死刑犯罪名
家用充电桩:绿色出行的必备之选
《霍格沃茨之遗》攻略:黑魔法防御术课程详解
我国医疗保险行业支出分析:政府及个人现金支出下降 社会支出上升
从阴阳到0与1:太极哲学在数字化转型中的应用
天干十神和地支十神哪个作用更大,八字看什么最重要
八字里的财库怎么看 八字五大财库
小六壬的留连是什么意思
81个珠子代表什么寓意与含义
能降低嵌入式系统功耗的三个技术
自来水水压一般是多少mpa,如何判断水压过高或过低
自来水水压一般是多少mpa,如何判断水压过高或过低
《缘之空》究竟讲述了什么:缘分与成长的故事能带给我们什么启示
超级战队最终BOSS盘点:这几个BOSS的气势不输假面骑士,奥特曼都要绕道
火鸡面太辣?三养食品:远不及小米辣的三分之一!
各种面条的和面比例!手擀面、盐水拉条子、刀削面、饸饹面、扯面 劲道爽滑!
深度学习根据loss曲线进行分析调参
急性呼吸道传染病疫情趋势如何?如何科学应对?
自然哲学的数学原理