java如何在使用SpringJDBCTemplate时动态更改数据库/目录
考虑所有客户端数据存储在其自己的数据库/目录中的情况,所有这些数据库都存储在单个RDBMS(客户端数据)中。主数据(如客户等)保存在另一个RDBMS(主数据)中。如何通过JdbcTemplate
动态访问客户机数据RDBMS中的特定数据库
在客户机数据RDBMS中为每个数据库定义DataSource
,然后根据建议动态选择一个here对于我们来说不是一个选项,因为数据库是动态创建和销毁的
我基本上需要像JDBC的Connection.setCatalog(String catalog)
这样的东西,但我在Spring JdbcTemplate
中没有找到类似的东西
# 1 楼答案
这是我使用postgres切换模式所需要的。@m3th0dman的道具,让我走上正轨。我只是想补充一下,以防其他人像我一样在搜索切换模式时找到这个答案
# 2 楼答案
您可以从
JdbcTemplate
访问Connection
:jdbcTemplate.getDataSource().getConnection().setCatalog(catalogName);
您只需确保数据库驱动程序支持此功能
# 3 楼答案
也许您可以用^{} 包装数据源,在
getConnection()
中调用setCatalog()
,并在JdbcTemplate
创建时使用包装的数据源: