office tool plus使用方法(office和wps区别)
2332
2022-05-30
1.简介
多数据源即需要在不同库上进行操作时所需要的配置,分为不同服务跨库进行操作、相同服务跨库进行操作,本例中按照mybatisPlus的方法进行操作处理。
这种也可以称为动态数据源,主要操作是在方法上、类上或者mapper上进行@DS(“配置好的数据源的名称”)注解的标注,动态切换数据源,没有标注的会使用默认配置的数据源,标注的名字的则会使用已存在的配置的这个名字的数据源,简单便捷~
2.mybatisPlus多数据源操作
官网文档
2.1 首先是导入多数据源的依赖
注意一点是次数导入的依赖的版本号需要与项目其他相关的使用mybatisPlus的版本号保持一致,要不一致可能会导致循环依赖(不同版本直接,不知道用哪一个)的情况。
2.2 配置application.yml中的多数据源
此处以mysql为例,其中dynamic下的primary为默认的数据源,在后面使用中,如果没有使用@DS进行标注使用其他的数据源,会默认使用此处的数据源。
在spring.datasource.dynamic.datasource下是配置的多数据源,名称可以任意起,可以配置很多个。
#配置数据源 spring: datasource: type: com.zaxxer.hikari.HikariDataSource # 数据源类型:HikariCP dynamic: primary: master #设置默认的数据源或者数据源组,默认值即为master datasource: master: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://127.0.0.1:3306/test1?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false username: root password: password slave: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://127.0.0.1:3306/test2?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false username: root password: password
2.3 使用
只需要在方法或者类名上加@DS(“上面配置的多数据源签名的名字”),即可开启多数据源的查询操作。
其中多数据源在不切换数据源的sql查询是这样的 select * from 数据库1.t1 LEFT JOIN 数据库2.t2 ON 数据库1.t1.id = 数据库2.t2.id,只需要在我们正常的sql中的字段前面加上数据库名就可以了,这里是适用于同服务不同库直接的操作。
@DS("slave") public XXX test(XXX xxx...) { }
使用时需要注意以下几点:
2.3.1 不能使用事务,否则数据源不会切换,使用的还是第一次加载的数据源;
2.3.2 第一次加载数据源之后,第二次、第三次…操作其它数据源,如果数据源不存在,使用的还是第一次加载的数据源;
2.3.3 数据源名称不要包含下划线,否则不能切换。
2.4 一次使用多个数据源进行操作
一次使用多个数据源进行操作,是通过多线程的方法开启多个个连接进行操作的。参考
由于没有相关业务暂时没有测试过下面这种方法,在此记录一下待后面有空了进行测试总结~
@Override @DataSource(value = DataSourceNames.TWO) public Map
参考一 @DS轻松解决动态数据源问题
参考二 事务和@DS同时使用的操作
因为所需要处理的业务在同一个服务器上的跨库操作,所以暂时没有测过不同服务直接的跨库操作,还有上面这种@DS和事务一起使用的情况暂时没有测过。
参考三 若依框架配置多数据源
参考四 若以框架配置数据源官网
以上就是今天爬坑内容,爬完一个坑还有另一个坑,希望后面能顺顺利利的~加油~
SQL 数据库
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。