MybatisPlus设置动态表名(2)
MybatisPlus设置动态表名
DynamicTableTreadLocal类的作用是为每个线程提供一个独立的tableName变量。
每个线程可以通过调用getTableName方法获取自己的tableName变量的值,也可以通过调用setTableName方法设置自己的tableName变量的值。
这样可以保证每个线程都有自己独立的tableName变量,不会相互干扰。
ThreadLocal在该类中的作用
ThreadLocal是Java中的一个类,它提供了线程本地变量的功能。
在DynamicTableTreadLocal类中,通过创建一个ThreadLocal对象tableName,每个线程都可以通过这个对象来获取和设置自己的tableName变量。
ThreadLocal保证了每个线程都有自己独立的变量副本,不会被其他线程访问或修改。
ThreadLocal应用场景
ThreadLocal的应用场景主要是在多线程环境下,需要为每个线程维护独立的变量副本的情况下使用。
例如,在Web应用中,每个请求都会被分配给一个线程进行处理,如果需要在处理请求的过程中保存一些状态信息,可以使用ThreadLocal来实现。
另外,ThreadLocal还可以用于线程池、数据库连接池等场景,保证每个线程都有自己独立的资源。
表对应的的实体类配置
@Data
@TableName("my_test")
@JsonInclude(JsonInclude.Include.NON_NULL)
public class MyTest implements Serializable {
private static final long serialVersionUID = -65257563878624647L;
@TableId("uuid")
private String uuid;
@JsonProperty("user_name")
@TableField("user_name")
private String userName;
}
在表对应的的实体类上,只需要配置没有分年月的表名@TableName("my_test")即可,无需指定分年月的表名;
具体通过MyBatisPlusConfig类,根据DynamicTableTreadLocal类设置的表名自动切换要操作的表名
动态切换表的具体使用
设置表名
DynamicTableTreadLocal.INSTANCE.setTableName("mytest_202401");
获取表名
DynamicTableTreadLocal.INSTANCE.getTableName();
删除表名
DynamicTableTreadLocal.INSTANCE.remove();
最后总结
DynamicTableTreadLocal.INSTANCE.setTableName("mytest_202401");DynamicTableTreadLocal.INSTANCE.getTableName();
删除表名
DynamicTableTreadLocal.INSTANCE.remove();
最后总结
DynamicTableTreadLocal.INSTANCE.remove();文章参考MyBatis-Plus官方文档,根据具体业务需求修改实现
官方文档地址
https://baomidou.com/
动态表名插件
https://gitee.com/baomidou/mybatis-plus-samples/tree/master/mybatis-plus-sample-dynamic-tablename
https://baomidou.com/https://gitee.com/baomidou/mybatis-plus-samples/tree/master/mybatis-plus-sample-dynamic-tablename
以上是IT袋网网关于MybatisPlus设置动态表名的详细讲解,仅供大家参考建议!
相关阅读
-
电脑快捷操作:全选快捷键全面解析
今天小编详解电脑快捷操作的相关知识,接下来就是全面介绍。 在日常的电脑操作中,快捷键可以大大提高我们的工作效率。 其中,全选快捷键是最常用的一种,本文将详细介绍电脑上全选的
-
怎么注册自己的网站域名账号 申请域名网址的流程
一篇很详细的教程是关于怎么注册自己的网站域名账号和申请域名网址的流程的IT知识,下面为详细的介绍。 注册域名的一般流程是什么?个人申请域名流程需要知道哪些? 一、域名注册流程
-
服务器怎么安装iis iis的安装及web服务器配置
关于这个服务器怎么安装iis和iis的安装及web服务器配置方面的介绍,具体内容如下: 大家好,我是老盖,感谢观看本篇文章,本文做的也有视频,也可以看我发布的视频。 今天给大家讲一下安
-
什么是dmz网络 DMZ网络的定义与解析
今天小编介绍什么是dmz网络的相关知识,下面为详细的介绍。 DMZ,全名为Demilitarized Zone,是计算机网络中的一个重要概念。 它通常是一个位于内部网络和外部网络之间的中立区域,充当了网络


