首页 > 其他分享 >mybatisplus 中查询的实体对应的表名是动态的解决方案

mybatisplus 中查询的实体对应的表名是动态的解决方案

时间:2024-05-10 19:33:27浏览次数:24  
标签:mybatisplus name 解决方案 tableName 视图 public 表名 table 对应

  开发中遇到需要查询一些表里的数据,这些数据按照一定的规则存放在不同的数据库表里,例如表名是table_name+月份  table_name_2024_05,table_name_2024_04这样,这些表的结构都相同。

网上找了一些动态修改实体对应数据库表名的方法,操作相对复杂而且跟mybatisplus的版本有关。自己想出一个相对简单的解决方案,思路如下:

      1、数据库里创建一个视图table_name_v  对应表table_name(那一批表的结构都一样对应哪一个都可以)

      2、在查询数据之前重新建立视图,修改视图对应的表。这样就完成了视图不变,但是查询的内容是根据业务需求对应的表里的数据。

 

实体代码:

@TableName(value = "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);	

 server代码

public class TableNameVServiceImpl implements ITableNameVService {	

    @Autowired
    TableNameVMapper tableNameVMapper;
	
    @Override
    public Map selectList(TableNameV tableNameV) {
         
        id = "2024_05";
        String tableName = "table_name_"+id;
        //动态创建视图 指向对应的分表
        tableNameVMapper.createView(tableName);	
		
		//.......业务代码

 

   

  

 

标签:mybatisplus,name,解决方案,tableName,视图,public,表名,table,对应
From: https://www.cnblogs.com/yclh/p/18185159

相关文章

  • windows系统android studio启动模拟器蓝屏重启的解决方案
    我使用的是惠普笔记我电脑原有的默认配置:主要是参考其它博主的,发现这些都已默认设置好了1、虚拟化:已启动 2、Hyper-V:已取消  解决办法:androidstudio-->File-->Settings-->搜索:sdk-->AndroidSDK>SDKTools-->查看是否安装了:IntelX86EmulatorAccelerat......
  • 批量修改asp.net core 项目的解决方案的命名空间
    单个命名空间重命名:打开任何使用旧命名空间(例如:“OrchardCore”)的文件。右键点击命名空间名称,选择“重构”然后选择“重命名”。输入新的命名空间名称(例如:“SuperCore”),确保选中“预览更改”,然后点击“应用”。VisualStudio将显示所有受影响的引用,并让你确认修改。全局搜索......
  • 机台统一管理有多困难?但现在出现可行的解决方案了!
    机台的统一管理对于企业来说对提高生产效率、降低成本、优化资源配置以及保障生产安全等方面都具有至关重要的作用。但企业机台统一管理却存在实际的困难,主要体现在:多样化的设备和运作模式:由于机台设备可能来自不同的厂商,其规格、运行环境和上报方式各不相同。这导致难以采用统......
  • AES加密 前后端解决方案
    1、参考前后端AES加解密,java使用CipherOutputStream加密输出时,前端分段解密方案-CSDN博客使用crypto-js对文件上传下载进行加密处理_cryptojs如何加密文件流-CSDN博客AES解密报错,Inputlengthmustbemultipleof16whendecryptingwithpaddedcipher-CSDN博客2、html<!D......
  • AI 数据观 | TapData Cloud + MongoDB Atlas:大模型与 RAG 技术有机结合,落地实时工单处
    本篇为「AI数据观」系列文章第二弹,在这里,我们将进一步探讨AI行业的数据价值。以RAG的智能工单应用场景为例,共同探索如何使用TapdataCloud+MongoDBAtlas实现具备实时更新能力的向量数据库,为企业工单处理的智能化和自动化需求,提供准实时的新鲜数据。完整分布教程指引,详见......
  • 利用神经网络对脑电图(EEG)降噪------开源的、低成本、低功耗微处理器神经网络模型解
    具体的软硬件实现点击http://mcu-ai.com/MCU-AI技术网页_MCU-AI人工智能这个示例展示了如何使用EEGdenoiseNet基准数据集[1]和深度学习回归去除脑电图(EEG)信号中的眼电图(EOG)噪声。EEGdenoiseNet数据集包含4514个干净的EEG片段和3400个眼部伪迹片段,这些片段可以用来合成带有......
  • [转]openEuler 22.03 (LTS-SP1)安装最新版Docker(踩坑及解决方案)
    原文地址:openEuler22.03(LTS-SP1)安装最新版Docker(踩坑及解决方案)_openeulerdocker-CSDN博客openEuler22.03LTS-SP1要是直接yuminstalldocker,默认安装docker是18.09.0,这个版本Docker有个bug,所以还是安装个最新版Docker。1、先增加docker官方仓库[[email protected]......
  • el-upload以及blob自动根据列表名称匹配下载
    dom文档<el-row:gutter="20"><el-col:span="16":offset="0"><el-form-itemlabel-width="120px"label="文件上传"><el-uploadref=......
  • mybatisplus批量插入,分批的功能
    默认分批是1000一般也就改成100-1000之间示业务而定 比较简洁的一种方式如下原代码publicBooleaninsertTasks(List<TaskInfoEntity>tasks,StringagentId){//todo分批List<AgentTaskRelationEntity>entities=tasks.stream().map((......
  • sd-wan各厂家解决方案
    锐捷华为华三Fortinet......