在开发中,遇到了配置多个数据库的需求,来记一下笔记
首先引入依赖
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>dynamic-datasource-spring-boot-starter</artifactId>
<version>${version}</version>
</dependency>
<!--oracle-->
<dependency>
<groupId>com.oracle.database.jdbc</groupId>
<artifactId>ojdbc8</artifactId>
<scope>runtime</scope>
</dependency>
<!--sqlserver-->
<dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>mssql-jdbc</artifactId>
<scope>runtime</scope>
</dependency>
<!--数据源-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.20</version>
</dependency>
<!--mysql-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
配置yml文件
spring:
datasource:
dynamic:
primary: mysql #设置默认的数据源或者数据源组,默认值即为master
strict: false #严格匹配数据源,默认false. true未匹配到指定数据源时抛异常,false使用默认数据源
datasource:
mysql:
username: root
password: root
url: jdbc:mysql://127.0.0.1/abc?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=UTC
driver-class-name: com.mysql.cj.jdbc.Driver
oracle:
url: jdbc:oracle:thin:@127.0.0.1/ora
username: root
password: root
driver-class-name: oracle.jdbc.driver.OracleDriver
sqlserver:
url: jdbc:sqlserver://127.0.0.1:1433;DatabaseName=数据库名
username: sa
password: root#
driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
配置好yml文件之后,在service层里加上注解主要是@DS,由mybatis-plus提供 多数据源 | MyBatis-Plus
@Service
@RequiredArgsConstructor(onConstructor_ = {@Lazy,@Autowired})
@DS("sqlserver") //不同的数据源要写着不同的名字
这样就大功告成了