我有和下面一样的问题,但是我想知道答案. Spring Boot: How to use multiple schemas and dynamically choose which one to use for every request at runtime

请帮我找出……的答案

我如何才能拥有一个数据库连接并 for each 请求指定不同的模式呢?

提前谢谢您.

推荐答案

如果定义了多个数据源,并根据您的请求,更改为具有正确模式的数据源,难道不管用吗?

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数据库来实现这种动态数据存储.

Database相关问答推荐

如何高效地存储棋局?

如何决定使用数据库事务

嵌入式的 best数据库是什么?

如何在 ubuntu 中使用脚本添加带有连字符的数据库名称

动态数据模型

为什么引用 SQLite rowid 会导致外键不匹配?

如何更改 Heroku 中的列类型?

如何识别 DB2 端口号

nodejs和数据库如何通信 ?

我应该为我创建的新创建的 PostgreSQL 模式使用什么正确的文件扩展名?

在表上插入或更新违反外键约束

如何在 MongoDB 和 PostgreSQL for GIS 之间进行 Select ?

如何将数据库从一台计算机复制到另一台计算机?

恢复数据库备份时出错

如何使用 MySQL Workbench 更改字段的值?

Redis: Get key and value on expiration

如何在 SQL Server 中生成并手动插入唯一标识符?

多个和单个索引

sqlite 时间戳格式化

数据库 EAV 优点/缺点和替代方案