- pom.xml
<!-- 动态数据源 -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>dynamic-datasource-spring-boot-starter</artifactId>
<version>3.2.0</version>
</dependency>
- application.yml 配置
datasource:
master:
driver-class-name: oracle.jdbc.OracleDriver
url: jdbc:oracle:thin:@localhost:14521:ORCL
username: *****
password: *******
# 多数据源Mysql配置
mysqlDataSource:
url: jdbc:mysql://localhost/bigdata?useUnicode=true&characterEncoding=utf8&autoReconnect=true&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai
username: root
password: ********.
driver-class-name: com.mysql.cj.jdbc.Driver
注解怎么使用呢?
在网上查资料得到以下几种情况:
- 当注解添加到类上,意味着此类里的方法都使用此数据源;
- 当注解添加到方法上时,意味着此方法上使用的数据源优先级高于其他一切配置
标题无效情况:
- 注解添加service(Service 接口)无效
- 注解添加service(Service 接口)的方法上无效
- 注解添加到mapper接口类上无效
- 项目中具体使用(因为我觉得麻烦直接把@DS(“mysqlDataSoruce”)注解直接放到了Service的实现类的方法上了)
@Override
@DS("mysqlDataSoruce")
public List<Map<String, Object>> getCompanyHourData(String name, String propertyType) {
return airDataHourMapper.getCompanyHourData(name);
}