nacos中配置mysql和oracle多数据源
时间: 2023-11-30 18:03:01 浏览: 189
在 Nacos 中配置多个数据源需要以下步骤:
1. 在 Nacos 控制台中创建两个配置文件,分别对应 MySQL 和 Oracle 数据库的连接信息。
2. 在 Spring Boot 项目中添加对 Nacos 的依赖,并配置 Nacos 配置中心的相关信息。
```xml
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
```
```yaml
spring:
cloud:
nacos:
config:
server-addr: localhost:8848
username: nacos
password: nacos
file-extension: yaml
```
3. 添加对数据源的依赖,并在 application.yml 文件中配置数据源的相关信息。
```xml
<!-- MySQL 数据源 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.2.6</version>
</dependency>
<!-- Oracle 数据源 -->
<dependency>
<groupId>com.oracle.database.jdbc</groupId>
<artifactId>ojdbc8</artifactId>
<version>19.3.0.0</version>
</dependency>
```
```yaml
# MySQL 数据源配置
spring:
datasource:
mysql:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/test
username: root
password: 123456
# Oracle 数据源配置
oracle:
datasource:
driver-class-name: oracle.jdbc.driver.OracleDriver
url: jdbc:oracle:thin:@localhost:1521:orcl
username: scott
password: tiger
```
4. 在 Spring Boot 项目中定义两个数据源,分别对应 MySQL 和 Oracle 数据库。
```java
@Configuration
public class DataSourceConfig {
@Bean
@ConfigurationProperties("spring.datasource.mysql")
public DataSource mysqlDataSource() {
return DruidDataSourceBuilder.create().build();
}
@Bean
@ConfigurationProperties("oracle.datasource")
public DataSource oracleDataSource() {
return new OracleDataSource();
}
}
```
5. 在 Spring Boot 项目中定义多个 JdbcTemplate,分别对应 MySQL 和 Oracle 数据库。
```java
@Configuration
public class JdbcTemplateConfig {
@Bean
public JdbcTemplate mysqlJdbcTemplate(@Qualifier("mysqlDataSource") DataSource dataSource) {
return new JdbcTemplate(dataSource);
}
@Bean
public JdbcTemplate oracleJdbcTemplate(@Qualifier("oracleDataSource") DataSource dataSource) {
return new JdbcTemplate(dataSource);
}
}
```
6. 在代码中使用 JdbcTemplate 进行数据库操作,指定对应的数据源。
```java
@Service
public class UserService {
@Autowired
private JdbcTemplate mysqlJdbcTemplate;
@Autowired
private JdbcTemplate oracleJdbcTemplate;
public List<User> findAll() {
List<User> userList = new ArrayList<>();
// 使用 MySQL 数据源查询用户列表
userList.addAll(mysqlJdbcTemplate.query("SELECT * FROM user", new UserRowMapper()));
// 使用 Oracle 数据源查询用户列表
userList.addAll(oracleJdbcTemplate.query("SELECT * FROM user", new UserRowMapper()));
return userList;
}
}
```
以上就是在 Nacos 中配置 MySQL 和 Oracle 多数据源的步骤。需要注意的是,在 Spring Boot 项目中配置多个数据源时,需要为每个数据源定义一个唯一的 bean 名称,并使用 @Qualifier 注解指定对应的 bean。
阅读全文