2017-02-11 4 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. Вы пытались его использовать? –