一、MyBatis-Plus动态表名插件使用
官方文档-动态表名插件:https://baomidou.com/pages/2a45ff/#dynamictablenameinnerinterceptor
官方有demo,使用起来还是蛮简单的。
1、DynamicTableNameInnerInterceptor插件源码DynamicTableNameInnerInterceptor:原理为解析替换设定表名为处理器的返回表名,表名建议可以定义复杂一些避免误替换。
重点看 changeTable方法。
- TableNameHandler tableNameHandler是一个接口。使用动态表名插件时,必须要有 TableNameHandler的实现类。
模拟使用场景:
一个 entity 对应多张表(多张表结构一致,只有表名称不同),在使用时,可以动态映射表名称。 比如:按照时间分表,某些业务冷热数据分离后数据存在不同的表中等。根据自定义的算法找到我们需要查询的表名。
下面我通过参数的方式传入动态表名来操作。
2.1 请求参数动态表名传递辅助类/** * 请求参数动态表名传递辅助类 */ public class RequestDynamicTableNameHelper { /** * 请求参数存取(表名)。请求参数自定义,官方Demo定义为ThreadLocal关注打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?