使用Spring Boot动态连接到不同的数据库

时间:2019-07-02 10:20:51

标签: java spring-boot spring-data-jpa database-connection spring-jdbc

如何使用Spring连接到不同的数据库(从我的数据库中加载数据库的类型和连接信息)? < / p>

what I am trying to build?
I am building a Spring-Boot application that should be able to get data from my customers in the following ways:
1. Connect to my customer SQL DB (MySQL, MSSQL, PostgreSQL,etc...)
2. connect to my customer MongoDB,
3. read data from CSV/JSON files.

应用运行时,它会收到带有客户ID的HTTP请求。连接。此时,该应用程序应从我的数据库(包含他正在使用的数据库以及与其连接的凭据)中加载该客户,并应建立与该数据库的连接以开始查询它。 (一个客户与另一个客户之间的数据库架构是不同的,所以我还在数据库中维护了一组查询来查询客户

我正在努力实现图中的蓝色部分:

I'm struggling to implement the blue part of the diagram

2 个答案:

答案 0 :(得分:0)

您可以在应用程序中配置多个数据源。您只需要提及他们的driverClassName connectionUrl username password。您可以找到一个示例here

PS:别忘了提及他们的依赖性

答案 1 :(得分:0)

可以即时创建login-form来查询MySQL数据库。以下示例显示了如何执行此操作:

JdbcTemplate

可以使用类似的方法来使用MongoDB -创建DriverManagerDataSource dataSource = new DriverManagerDataSource(); dataSource.setDriverClassName("com.mysql.jdbc.Driver"); dataSource.setUrl("jdbc:mysql://host:port/database"); dataSource.setUsername("username"); dataSource.setPassword("password"); JdbcTemplate template = new JdbcTemplate(dataSource); SqlRowSet sqlRowSet = template.queryForRowSet("SELECT FOO FROM BAR;"); 来处理数据。另一种方法是使用本机MongoDB库。 Here,您可以找到有关使用方法的更多信息。

如果使用了Spring Boot中的库,请不要忘记禁用自动配置,因为启动时没有凭据。