如何在Spring Boot JDBC应用程序中配置两个数据库(本地和远程数据库)并将数据插入表中



我是Spring Boot的新手,正在尝试使用Spring JDBC配置和访问两个数据库。有人能帮我吗?我有一个本地数据库(MySQL(和另一个AWS RDS(MySQL(。我已经用两个数据源配置了application.yml,但无论何时运行应用程序,它都只连接到application.yml中配置的最后一个数据库。我想连接到两个数据库,因为从一个数据库我需要获取信息和处理,并将日志放在AWS RDS中。有人能帮我吗?

这是我的Dbconfig文件

@Bean(name = "rdsDatasource")
@ConfigurationProperties("spring.datasource.rds")
public DataSource rdsDatasource() {
return DataSourceBuilder.create().build();
}
@Bean
public NamedParameterJdbcOperations namedParameterJdbcOperations(@Qualifier("rdsDatasource") DataSource rdsDbDataSource) {
return new NamedParameterJdbcTemplate(rdsDbDataSource);
}

application.yml

datasource:
local:
url: jdbc:mysql://localhost:3306/test
username: test
password: test
port: 3306
rds:
url: jdbc:mysql://aws-rds/test
username: test
password: test
port: 3306.

您已经将DataSource配置为使用RDS数据库的属性,这就是@ConfigurationProperties("spring.datasource.rds")所做的。

每个DataSource对象只能连接到一个数据库。您应该用@ConfigurationProperties("spring.datasource.local")创建另一个DataSource对象,并将其命名为类似@Bean("localDatasource")的其他名称,然后您将有两个不同的DataSource对象连接到您的两个数据库。

最新更新