如何在springboot中访问两个SQl服务器

时间:2018-09-12 10:18:51

标签: sql-server spring-boot jdbctemplate

具有运行Spring MVC的应用程序。

我需要它来访问我的应用程序中的2个不同的数据库(两个Sql服务器)。

我该如何配置?

1 个答案:

答案 0 :(得分:0)

您可以使用EntityManager访问第一个数据库,并使用JdbcTemplate访问第二个数据库

1.application.properties

#SQL Server 1
spring.datasource.url = [url]
spring.datasource.username = [username]
spring.datasource.password = [password]
spring.datasource.driverClassName = [sql Server Driver class name]

#SQl Server 2
spring.secondaryDatasource.url = [url]
spring.secondaryDatasource.username = [username]
spring.secondaryDatasource.password = [password]
spring.secondaryDatasource.driverClassName = [sql Server Driver class name]

2。创建@Configuration类并声明两个数据源bean。创建一个Jbc模板以用于访问sql server 2

@Bean
@Primary
@ConfigurationProperties(prefix="spring.datasource")
public DataSource primaryDataSource() {
    return DataSourceBuilder.create().build();
}

@Bean
@ConfigurationProperties(prefix="spring.secondaryDatasource")
public DataSource secondaryDataSource() {
    return DataSourceBuilder.create().build();
}


@Bean
public JdbcTemplate jdbcTemplate() {
    return new JdbcTemplate(secondaryDataSource());
}

用法示例

@Repository
public class CustomerRepositoryImpl implements CustomerRepository {


    private final JdbcTemplate jdbcTemplate;

    public CustomerRepositoryImpl(JdbcTemplate jdbcTemplate) {
        this.jdbcTemplate = jdbcTemplate;
    }

}

您还可以查看文档: https://docs.spring.io/spring-boot/docs/1.2.3.RELEASE/reference/htmlsingle/#howto-use-two-entity-managers

和此站点 https://www.baeldung.com/spring-data-jpa-multiple-databases