Springboot+mybatis-plus+mysql+clickhouse集成多数据源

1.导入相关依赖

<dependency>
            <groupId>ru.yandex.clickhouse</groupId>
            <artifactId>clickhouse-jdbc</artifactId>
            <version>0.2.4</version>
        </dependency>
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>dynamic-datasource-spring-boot-starter</artifactId>
            <version>3.2.0</version>
        </dependency>
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.2.0</version>
        </dependency>

2.因为之前项目用的是mybatis现在改成mybatis-plus所以需要在pom里面把之前的mybatis生成的冲突给解决掉

 1  <dependency>
 2             <groupId>com.xlkh</groupId>
 3             <artifactId>cloud-platform-common</artifactId>
 4             <exclusions>
 5                 <exclusion>
 6                     <artifactId>slf4j-log4j12</artifactId>
 7                     <groupId>org.slf4j</groupId>
 8                 </exclusion>
 9                 <exclusion>
10                     <artifactId>mybatis</artifactId>
11                     <groupId>org.mybatis</groupId>
12                 </exclusion>
13                 <exclusion>
14                     <artifactId>mybatis-spring</artifactId>
15                     <groupId>org.mybatis</groupId>
16                 </exclusion>
17             </exclusions>
18         </dependency>

3.(很重要)添加相关的配置文件

 1 spring:
 2   datasource:
 3     dynamic:
 4       primary: mysql  # 配置默认数据库
 5       strict: false #严格匹配数据源,默认false. true未匹配到指定数据源时抛异常,false使用默认数据源
 6       datasource:
 7         mysql : # 数据源配置
 8           url: jdbc:mysql:IP+Port
 9           username:账号
10           password: 密码
11 driver-class-name: com.mysql.jdbc.Driver 12 clickhouse: # 数据源2配置 13 url: jdbc:clickhouse:IP+Port 14 username: 15 password: 16 driver-class-name: ru.yandex.clickhouse.ClickHouseDriver

这一步我没有用阿里巴巴的Druid的连接池,不知道为啥用了Druid在项目里面一直启动不成功,报数据源的URL找不到,于是就把项目里关于Druid的全部删除掉,使用的是spring框架自带的Hikari连接池

后台启用日志可以看见mysql和clickhouse注入成功

 同时需要在启动类上面让spring启动时不用找数据源

4.最后就是在service的方法上面加一个注解

 @DS这个注解的意思是这个方法使用的是哪个数据源,因为你在yml里配置默认是mysql所以使用mysql的接口就不要加这个注解

5.测试接口是否成功

 大功告成

原文地址:https://www.cnblogs.com/dabu/p/15506919.html