当前位置: 首页 > news >正文

mybatis动态表名

1.基于mybatis官方文档

@Configuration
public class MybatisPlusConfig {@Beanpublic MybatisPlusInterceptor mybatisPlusInterceptor() {MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();DynamicTableNameInnerInterceptor dynamicTableNameInnerInterceptor = new DynamicTableNameInnerInterceptor();dynamicTableNameInnerInterceptor.setTableNameHandler((sql, tableName) -> {// 获取参数方法Map<String, Object> paramMap = RequestDataHelper.getRequestData();paramMap.forEach((k, v) -> System.err.println(k + "----" + v));String year = "_2018";int random = new Random().nextInt(10);if (random % 2 == 1) {year = "_2019";}return tableName + year;});interceptor.addInnerInterceptor(dynamicTableNameInnerInterceptor);// 3.4.3.2 作废该方式// dynamicTableNameInnerInterceptor.setTableNameHandlerMap(map);return interceptor;}
}
/*** 请求参数传递辅助类*/
public class RequestDataHelper {/*** 请求参数存取*/private static final ThreadLocal<Map<String, Object>> REQUEST_DATA = new ThreadLocal<>();/*** 设置请求参数** @param requestData 请求参数 MAP 对象*/public static void setRequestData(Map<String, Object> requestData) {REQUEST_DATA.set(requestData);}/*** 获取请求参数** @param param 请求参数* @return 请求参数 MAP 对象*/public static <T> T getRequestData(String param) {Map<String, Object> dataMap = getRequestData();if (CollectionUtils.isNotEmpty(dataMap)) {return (T) dataMap.get(param);}return null;}/*** 获取请求参数** @return 请求参数 MAP 对象*/public static Map<String, Object> getRequestData() {return REQUEST_DATA.get();}
}

2. 使用参数的方式

@Mapper
public interface LogMapper extends BaseMapper<LogEntity> {List<LogEntity> queryAll(@Param("tableName")String tableName);
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zhubayi.dynatable.mapper.LogMapper"><!--namespace:名称空间id:唯一标识resultType:返回值类型${tableName}:从传递过来的参数中取出tableName值--><select id="queryAll" resultType="com.zhubayi.dynatable.entity.LogEntity">select * from ${tableName};</select>
</mapper>
http://www.lryc.cn/news/220666.html

相关文章:

  • 高校为什么需要大数据挖掘平台?
  • @Value的使用
  • 用 Wireshark 在 Firefox 或 Google Chrome 上使用 SSLKEYLOGFILE 环境变量解密 SSL 流量
  • 京东大数据:2023年Q3美妆行业数据分析报告
  • [题] 改革春风吹满地 #图论 #多边形面积
  • FPGA时序分析与约束(2)——时序电路时序
  • 明御安全网关任意文件上传漏洞复现
  • JVM虚拟机:如何查看自己的JVM默认的垃圾回收器
  • 目标检测YOLO系列从入门到精通技术详解100篇-【目标检测】机器视觉
  • 设计模式——建造者模式
  • Go语言用Colly库编写的图像爬虫程序
  • 14.2 并发与竞争实验
  • 【MediaTek】T750实现Host 网络和Guest 网络隔离以及各个连接终端间隔离功能
  • 数字滤波器之高通滤波器设计
  • 【leetcode】58.最后一个单词的长度
  • 用Java(C语言也可以看)实现冒泡排序和折半查找(详细过程图)+逆序数组
  • antd本地上传excel文件并读取文件的数据转为json
  • BI数据可视化:不要重复做报表,只需更新数据
  • fiddler抓包拦截请求转发到其他地址
  • 【Shell编程】| if 判断
  • Java手动引入Maven依赖的Jar包
  • 计算机毕设 基于大数据的社交平台数据爬虫舆情分析可视化系统
  • conda取消自动进入base环境
  • 【文生图】Stable Diffusion XL 1.0模型Full Fine-tuning指南(U-Net全参微调)
  • STM32笔记—DMA
  • 机器学习概论
  • 卡尔曼家族从零解剖-(04)贝叶斯滤波→细节讨论,逻辑梳理,批量优化
  • 小菜React
  • 新手用mac电脑,对文件的疑问和gpt回应
  • LeetCode|动态规划|392. 判断子序列、115. 不同的子序列、 583. 两个字符串的删除操作