在Spring Boot中配置多个数据源,例如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操作 }
标签:name,spring,mysql,JdbcTemplate,数据源,oracle,public From: https://www.cnblogs.com/SparkMore/p/17565982.html