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中实体对应的表名动态变化。
热门推荐
铺地石材厚度选择:是选3公分还是5mm,看看老师傅的建议!
如何通过短信查询联通话费余额?
PCIe信号详解
出梅了,足癣能出走吗?
专家:建立核污染水长期国际监测机制是保护全人类健康的必要手段
全球首例大型固态储氢设备出运:我国氢能产业的重大跨越
猕猴桃可以跟牛奶一起吃吗
神奇的木卫三:太阳系“超级大水库”,地球水量连它的零头都不到
武姓的起源与得姓始祖
无损传输线相位常数和无限带宽的研究
射波刀:动态精准狙击肿瘤的黑科技
五个月宝宝怎样判断饿
校园霸凌立案标准与量刑标准
今日头条封面怎么截?详解操作技巧与常见问题
范蠡和“鸟尽弓藏,兔死狗烹”的故事
春秋中后期的独立兵种——中国骑兵
Windows 10系统中重置Wi-Fi网络适配器的六种方法
天价变亲民!抗癌药拉罗替尼纳入医保,所有癌症都有救治希望了?
如何清理iPhone听筒灰尘
喝酒后多久可以开车,才不算酒驾?结果来了……
止咳糖浆开了之后可以放多久
韩国甜蜜人气网络漫画盘点:9部浪漫漫画让你心动不已
永久、永恒还是永续?Permanent、Perpetual和Eternal的区别
格兰凯恩杯:威士忌品鉴文化的象征
威士忌品鉴从选择杯型开始:各类威士忌杯介绍
民法对胎儿利益保护的法律分析
珠海至峨眉山交通指南:完整解析多种乘车方式与路线选择
军衔制是什么 军衔等级是如何划分的
二手房过户费用标准解析:城市间差异及费用计算
为什么说“早起毁一天”?几点起床最合适?建议:别早于这个时间