Spring Загрузка: как использовать несколько схем и динамически выбирать, какой из них использовать во время выполнения

У меня есть тот же вопрос, что и ниже, но я хочу знать ответ. Spring Загрузка: как использовать несколько схем и динамически выбирать, какой из них использовать для каждого запроса во время выполнения

Пожалуйста, помогите мне найти ответ на

Как я могу подключиться к одной базе данных и указать другую схему для каждого запроса?

Спасибо заранее.

Ответ 1

Не работает ли определение нескольких источников данных и в зависимости от вашего запроса изменится на правильную схему?

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 для достижения такого динамического хранения данных.