使用dynamic-datasource切换数据源实现mybatis的batch
dynamic-datasource切换数据源实现mybatis的batch
·
在多数据源模式下切换数据源可以使用@DS来实现多数据的切换操作,进行SQL的操作,但是有时候的时候场景需要使用批量操作大量数据,其中有通过sqlMap使用foreach的也有使用代码里面的SqlSession开启batch。

但是有时候会有多数据源的情况,如果是自己创建的sqlfactory那么直接引用并开启就行,但是如果使用的是dynamic-datasource,需要使用注解@DS切换数据源的,你会发现就算再sqlmap中指定了数据源依旧不生效,是因为你需要自己在手动切换一次指定的数据源才可以。下面直接上列子
//切换数据源
DynamicDataSourceContextHolder.push(datasource);
SqlSessionFactory sqlSessionFactory = sqlSessionTemplate.getSqlSessionFactory();
SqlSession sqlSession = sqlSessionFactory.openSession(ExecutorType.BATCH, false);
M modelMapper = sqlSession.getMapper(mapperClass);
其中需要使用
DynamicDataSourceContextHolder.push来切换数据源,并且最后需要clear一下,防止内存溢出。
具体代码参考了下面,参考了下面两篇文章可以跳转过去看看。
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐

所有评论(0)