您当前的位置: 首页 >  mybatis

暂无认证

  • 10浏览

    0关注

    94613博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

MyBatis-Plus动态表名插件使用

发布时间:2022-09-05 22:04:46 ,浏览量:10

一、MyBatis-Plus动态表名插件使用

官方文档-动态表名插件:https://baomidou.com/pages/2a45ff/#dynamictablenameinnerinterceptor

官方有demo,使用起来还是蛮简单的。

1、DynamicTableNameInnerInterceptor插件源码

DynamicTableNameInnerInterceptor:原理为解析替换设定表名为处理器的返回表名,表名建议可以定义复杂一些避免误替换。

重点看 changeTable方法。

  • TableNameHandler tableNameHandler是一个接口。使用动态表名插件时,必须要有 TableNameHandler的实现类。

在这里插入图片描述

2、使用

模拟使用场景:

一个 entity 对应多张表(多张表结构一致,只有表名称不同),在使用时,可以动态映射表名称。 比如:按照时间分表,某些业务冷热数据分离后数据存在不同的表中等。根据自定义的算法找到我们需要查询的表名。

下面我通过参数的方式传入动态表名来操作。

2.1 请求参数动态表名传递辅助类
/**
 * 请求参数动态表名传递辅助类
 */ public class RequestDynamicTableNameHelper { /**
	 * 请求参数存取(表名)。请求参数自定义,官方Demo定义为ThreadLocal            
关注
打赏
1655516835
查看更多评论
立即登录/注册

微信扫码登录

0.2285s