我有同样的问题,但我想知道答案。 Spring Boot: How to use multiple schemas and dynamically choose which one to use for every request at runtime
请帮助我找到答案
如何建立一个数据库连接并为每个请求指定不同的架构?
提前谢谢。
答案 0 :(得分:13)
定义多个数据源是否有效,并根据您的请求更改为具有正确架构的数据源?
spring.datasource.url = jdbc:oracle:thin:@//maui:1521/xe
spring.datasource.username = schema1
spring.datasource.password = ...
spring.datasource2.url = jdbc:oracle:thin:@//maui:1521/xe
spring.datasource2.username = schema2
spring.datasource2.password = ..
@Bean
@Primary
@ConfigurationProperties(prefix="spring.datasource")
public DataSource schema1() {
return DataSourceBuilder.create().build();
}
@Bean
@ConfigurationProperties(prefix="spring.datasource2")
public DataSource schema2() {
return DataSourceBuilder.create().build();
}
否则你需要杀死&重新创建连接以继续使用单一数据源,但这对于您的应用程序来说确实很慢,因为它需要一次又一次地重新连接。最好使用一些NoSQL数据库来实现这种动态数据存储。