2017-02-11 38 views
10

我有和下面相同的問題,但我想知道答案。 Spring Boot: How to use multiple schemas and dynamically choose which one to use for every request at runtimeSpring Boot:如何使用多個模式並動態選擇在運行時使用哪一個

請幫我找到適合

怎樣纔可以有一個數據庫連接,並指定爲每個請求架構不同的答案嗎?

預先感謝您。

+0

請說明需要1K個相同的表格。 (該鏈接似乎有一個錯誤的印象,那就是它會比一個十億行的表更好。) –

+0

您是否使用Hibernate?或者直接JDBC? – koe

+0

我正在使用JPA和JDBC – AndroidDev

回答

7

定義多個數據源並根據您的請求更改爲具有正確模式的數據源不行嗎?

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數據庫來實現這種動態數據存儲。

+0

不,我正在使用signle db,但通過api正文給出了不同的架構和架構名稱,我需要從多個架構中進行查詢並作出響應。 – AndroidDev

+0

你能告訴我如何殺死並重新建立連接,這將會有所幫助。感謝您的答覆。 – AndroidDev

+0

@LakshmiNaresh我的建議可以使用不同模式的同一個數據庫,也可能由於缺少url部分而模糊不清。你嘗試過使用它嗎? –

相關問題