2017-02-11 79 views
10

Mam to samo pytanie, co poniżej, ale chcę znać odpowiedź. Spring Boot: How to use multiple schemas and dynamically choose which one to use for every request at runtimeSpring Boot: jak korzystać z wielu schematów i dynamicznie wybierać, który z nich ma być używany w czasie wykonywania

Proszę mi pomóc w znalezieniu odpowiedzi na

Jak mogę mieć jedno połączenie z bazą danych i określić inny schemat dla każdego żądania?

Z góry dziękuję.

+0

Proszę wyjaśnić potrzebę tabel 1K identycznych. (Wygląda na to, że link miał fałszywe wrażenie, że byłby lepszy od tabeli z pojedynczym miliardem wierszy). –

+0

Czy używasz Hibernate? Lub bezpośrednio JDBC? – koe

+0

Używam JPA i JDBC – AndroidDev

Odpowiedz

7

Czy to nie działa, aby zdefiniować wiele źródeł danych i, w zależności od żądania, zmienić ten z poprawnym schematem?

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(); 
} 

W przeciwnym razie trzeba zabić & ponownie utworzyć połączenie do utrzymania przy użyciu jednego źródła danych, ale to byłoby bardzo powolny dla aplikacji ponieważ podłączając ponownie. Byłoby lepiej, gdybyś użył bazy danych NoSQL, aby osiągnąć ten rodzaj dynamicznego przechowywania danych.

+0

Nie, używam db podpisu, ale różne schematy i nazwy schematów podane są przez ciało API, muszę zapytać z wielu schematów i odpowiedzieć. – AndroidDev

+0

czy możesz mi powiedzieć, jak mogę zabić i odtworzyć połączenie, to będzie pomocne. Dziękuję za odpowiedź. – AndroidDev

+0

@LakshmiNaresh Moja sugestia działałaby z tą samą bazą danych z różnymi schematami, może była nieco niejasna z powodu braku części adresu URL. Czy próbowałeś go użyć? –