多数据源 oracle
时间: 2023-11-09 19:09:16 浏览: 66
多数据源是指在一个应用中使用多个不同的数据库连接,例如在一个Spring Boot应用中同时使用Oracle和MySQL数据库。在Spring Boot中实现多数据源可以通过配置多个数据源以及使用不同的事务管理器来实现。
首先,在Spring Boot中配置多数据源需要在application.properties或application.yml文件中配置数据库连接信息。例如,配置两个数据源的连接信息如下:
```yaml
spring.datasource.master.url=jdbc:mysql://localhost:3306/master_db
spring.datasource.master.username=root
spring.datasource.master.password=root
spring.datasource.slave.url=jdbc:oracle:thin:@localhost:1521:xe
spring.datasource.slave.username=system
spring.datasource.slave.password=admin
```
接下来,需要为每个数据源配置对应的数据源bean和事务管理器。可以使用@Primary注解标记主数据源,并为每个数据源配置不同的bean名称。例如:
```java
@Configuration
public class DataSourceConfig {
@Bean(name = "masterDataSource")
@ConfigurationProperties(prefix = "spring.datasource.master")
public DataSource masterDataSource() {
return DataSourceBuilder.create().build();
}
@Bean(name = "slaveDataSource")
@ConfigurationProperties(prefix = "spring.datasource.slave")
public DataSource slaveDataSource() {
return DataSourceBuilder.create().build();
}
@Bean
public PlatformTransactionManager masterTransactionManager(@Qualifier("masterDataSource") DataSource dataSource) {
return new DataSourceTransactionManager(dataSource);
}
@Bean
public PlatformTransactionManager slaveTransactionManager(@Qualifier("slaveDataSource") DataSource dataSource) {
return new DataSourceTransactionManager(dataSource);
}
}
```
然后,在需要使用不同数据源的地方,可以使用@Qualifier注解指定使用哪个数据源。例如,在Mapper中使用不同的数据源:
```java
@Mapper
public interface UserMapper {
@DS("master") // 指定使用主数据源
List<User> selectFromMaster();
@DS("slave") // 指定使用从数据源
List<User> selectFromSlave();
}
```
最后,使用@DS注解可以在Mapper类或方法上指定使用哪个数据源。在上述示例中,@DS("master")指定使用主数据源,@DS("slave")指定使用从数据源。