关于java:MybatisPlus多数据源使用多线程时失效的问题_mybatis @ds 多线程失效-程序员宅基地

技术标签: java  mybatis  数据库  java随写  

Mybatis-Plus多数据源应用也是极为不便,应用@DS注解即可。然而不论加在类上还是加在实现接口的办法上,均不能正确的找到对应的数据库,所有的线程都抓着主数据库不放。

几经周折,屡次试验,最终将多数据源的注解申明在了Callable实现类的call办法上,并且须要用编码的形式,设置以后线程数据源名称,并在以后线程执行完结后,再将其革除掉。

import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder;

    @Override
    public Future<Map<String, Object>> getTableOverview(CountDownLatch latch) {
        return executor.submit(new Callable<Map<String, Object>>() {
            @DS("slave")
            @Override
            public Map<String, Object> call() throws Exception {
                // 设置以后线程数据源
                DynamicDataSourceContextHolder.push("slave");
                Map<String, Object> result;
                try {
                    // 查询数据库办法
                    result = getTableData();
                } finally {
                    latch.countDown();
                    // 强制清空本地线程,避免内存透露,手动调用push可调用此办法确保革除
                    DynamicDataSourceContextHolder.clear();
                }
                return result;
            }
        });
    }
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_41154362/article/details/128581631

智能推荐

.NET Core使用EF Core框架_.net core ef-程序员宅基地

文章浏览阅读5.9k次,点赞2次,收藏16次。Entity Framework (EF) Core 是轻量化、可扩展、开源和跨平台版的常用 Entity Framework 数据访问技术。EF Core 可用作对象关系映射程序 (O/RM),以便于 .NET 开发人员能够使用 .NET 对象来处理数据库,这样就不必经常编写大部分数据访问代码了。core不像framwork一样可以在项目信件中直接选择ado.net实体数据模型。如下说简单点,就是在我们做增删改查的时候,不用再写非常繁琐的SQL语句,在以前,我们写完SQL语句后,查询出来的数据还要_.net core ef

Ionic4路由配置_ionrouteroutlet-程序员宅基地

文章浏览阅读2.9k次。ionic 4路由配置方法:步骤一:先新建一个page页面$ ionic g page excute步骤二:在tabs.module.ts里导入import { ExcutePageModule } from ‘…/pages/sub/excute/excute.module’;@NgModule({imports: [IonicModule,CommonModule,Forms..._ionrouteroutlet

setdefault函数的用法及理解_elf.samples.setdefault(-程序员宅基地

文章浏览阅读3.6k次,点赞4次,收藏10次。dict.setdefault(key, default=None)功能:如果键不存在于字典中,将会添加该键并将default的值设为该键的默认值,如果键存在于字典中,将读出该键原来对应的值,default的值不会覆盖原来已经存在的键的值。参数:key----要查找的键default-----查找的键不存在时用于设置的默认值使用方法示例:(以下使用方法是我理解setdefault函..._elf.samples.setdefault(

Qt 右击弹出菜单 点击菜单获取QAction 的文本_qt 右键菜单获取选中项qaction-程序员宅基地

文章浏览阅读1.9k次。Qt 右击弹出菜单 获取QAction 的文本说明因为QAction的signal triggered不能直接穿参数给槽函数这里是直接把信号与槽的信号转为了QAction类这样就可以直接调用QAction的函数获取当前点击的条目的文本了sender是属于QObject类 可以直接从 高的转为底的类代码 //QAction *action = static_cast<QAction*>(sender()); QAction *action1 = (QAction*)se_qt 右键菜单获取选中项qaction

吉大计算机研究生996综合,996算什么?来看看研究生究竟有多累-程序员宅基地

文章浏览阅读898次。hi,大家好!不知道大家最近休息的怎么样,累不累?正如热评所说,一天天啥也不干,但也觉得很累,现在年轻人“累”点太低了。回想小编考研的那段时间,每天宿管阿姨刚开门就去图书馆看书,中午为了节省时间特意错开吃饭高峰,晚上在宿舍关门前回来,在宿舍接着学习到一点左右,虽然每一天的时间安排得满满的,但是很充实,有自己的小目标,并不感觉到累。真正说到累,也是考完研的那段时间,每天都无所事事,说是要把考研时没有..._计算机研究生累吗

Fiori配置之My Inbox APP Configuration-程序员宅基地

文章浏览阅读631次。My Inbox APP是一种transcational类型的APP,但是它和transcational类型的APP的配置方法有所不同,因为它调用的是ABAP工作流。使用My Inbox APP,可以在任何时间地点在不同设备上make decisions。My Inbox APP可以分为:(1)All Items InboxMy Inbox在SAP Fiori启动板中提供了预配置的“All I..._my inbox

随便推点

db2 sqlcode sqlstate 说明_sqlcode 1226-程序员宅基地

文章浏览阅读1k次。sqlcode sqlstate 说明000 00000 SQL语句成功完成01xxx SQL语句成功完成,但是有警告+012 01545 未限定的列名被解释为一个有相互关系的引用+098 01568 动态SQL语句用分号结束+100 02000 没有找到满足SQL语句的行+110 01561 用DATA CAPTURE定义的表的更新操作不能发送到原_sqlcode 1226

【云星数据---Apache Flink实战系列(精品版)】:Apache Flink批处理API详解与编程实战009--DateSet实用API详解009_def map[r: typeinformation: classtag]-程序员宅基地

文章浏览阅读6.9k次。DateSet的API详解九joindef join[O](other: DataSet[O], strategy: JoinHint): UnfinishedJoinOperation[T, O]def join[O](other: DataSet[O]): UnfinishedJoinOperation[T, O]Creates a new DataSet by joining this Da_def map[r: typeinformation: classtag]

【python--程序】python-socket实现简单网页服务器_python使用socket创建网页-程序员宅基地

文章浏览阅读1.4k次,点赞3次,收藏9次。前言最近有粉丝建议博主出一篇讲使用socket进行实际编程应用的帖子。这里博主就讲使用Python socket实现简单的网页服务器.前体准备当前实验将会使用tcp的80端口,请各位读者将当前电脑的网页服务器的80端口修改或关闭。本教材使用python (版本:3.7.2,使用python3即可)工作过程这里我们先简单介绍下服务器是如何响应浏览器访问的:1. 建立连接。 既然..._python使用socket创建网页

mysql备份锁表吗_mysql备份数据库 肿么锁表-程序员宅基地

文章浏览阅读1.2k次。mysqldump是mysql用于转存储数据库的实用程序。它主要产生一个SQL脚本,其中包含从头重新创建数据库所必需的命令CREATETABLE INSERT等。如果给mysqldump进行备份,从库上停止复制的sql线程然后mysqldump,这个是个很好的选择,因为停止复制就没有写,就不用担心锁表的问题 。下面提供两只备份方法:一、MyISAM引擎备份1. 由于MyISAM引擎为表级锁,因此,..._mysqldump备份数据库可以备份锁定表吗

最小直径生成树-程序员宅基地

文章浏览阅读915次,点赞3次,收藏3次。最小直径生成树问题描述:求无向图中直径最小的生成树图的绝对中心定义:图上的某个在节点或边上的点,使得到该点最远的点的距离最小。根据 图的绝对中心 的定义可以知道,到绝对中心距离最远的结点至少有两个,且这两个最远点经过中心点的最短路是最小直径生成树的直径。求解方法:设 d[i][j]d[i][j]d[i][j] 表示图中节点 i,ji,ji,j 之间的最短路。rk[i][j]rk[i][j]rk[i][j] 表示到点 iii 第 jjj 远的点。如图,d[c][i]=min⁡(d[u][i]+x,_最小直径生成树

各领域公开数据集下载_ai challenge 2018 dataset download-程序员宅基地

文章浏览阅读1.5k次。各领域公开数据集下载上网找到了个数据集的整理,不用再搜就自己转过来。原文地址: https://zhuanlan.zhihu.com/p/25138563金融美国劳工部统计局官方发布数据房地产公司 Zillow 公开美国房地产历史数据沪深股票除权除息、配股增发全量数据,截止 2016.12.31上证主板日线数据,截止 2017.05.05,原始价、前复权价、后复权价,126..._ai challenge 2018 dataset download

推荐文章

热门文章

相关标签