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.测试接口是否成功
大功告成