在SpringBoot中配置多个数据源,例如MySQL和Oracle,可以通过以下步骤实现:
- 添加依赖
在pom.xml文件中添加MySQL和Oracle的依赖:
<!-- MySQL -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!-- Oracle -->
<dependency>
<groupId>com.oracle.ojdbc</groupId>
<artifactId>ojdbc8</artifactId>
<version>19.3.0.0</version>
</dependency>
- 配置数据源
在application.yml或application.properties文件中配置MySQL和Oracle的数据源:
spring:
datasource:
mysql:
url: jdbc:mysql://localhost:3306/mydb?useSSL=false&serverTimezone=UTC
username: mysql_user
password: mysql_password
driver-class-name: com.mysql.cj.jdbc.Driver
oracle:
url: jdbc:oracle:thin:@localhost:1521:orcl
username: oracle_user
password: oracle_password
driver-class-name: oracle.jdbc.driver.OracleDriver
- 创建数据源配置类
创建一个配置类,用于定义两个数据源的Bean:
@Configuration
public class DataSourceConfig {
@Bean(name = "mysqlDataSource")
@ConfigurationProperties(prefix = "spring.datasource.mysql")
public DataSource mysqlDataSource() {
return DataSourceBuilder.create().build();
}
@Bean(name = "oracleDataSource")
@ConfigurationProperties(prefix = "spring.datasource.oracle")
public DataSource oracleDataSource() {
return DataSourceBuilder.create().build();
}
}
- 创建JdbcTemplate
为每个数据源创建一个JdbcTemplate,以便在DAO层使用:
@Configuration
public class JdbcTemplateConfig {
@Bean(name = "mysqlJdbcTemplate")
public JdbcTemplate mysqlJdbcTemplate(@Qualifier("mysqlDataSource") DataSource dataSource) {
return new JdbcTemplate(dataSource);
}
@Bean(name = "oracleJdbcTemplate")
public JdbcTemplate oracleJdbcTemplate(@Qualifier("oracleDataSource") DataSource dataSource) {
return new JdbcTemplate(dataSource);
}
}
- 使用JdbcTemplate
在DAO层,可以通过@Autowired和@Qualifier注解注入对应的JdbcTemplate,然后使用它们执行SQL操作:
@Repository
public class MyDao {
@Autowired
@Qualifier("mysqlJdbcTemplate")
private JdbcTemplate mysqlJdbcTemplate;
@Autowired
@Qualifier("oracleJdbcTemplate")
private JdbcTemplate oracleJdbcTemplate;
// 使用mysqlJdbcTemplate和oracleJdbcTemplate执行SQL操作
}
通过以上步骤,您可以在Spring Boot项目中配置并使用多个数据源。