考虑这样一种情况,所有客户端数据都存储在自己的数据库/目录中,所有这些数据库都存储在单个RDBMS(客户端数据)中。主数据(例如客户端等)保存在另一个RDBMS(主数据)中。我们如何通过
JdbcTemplate
动态访问客户端数据RDBMS中的特定数据库?对于我们来说,为客户端数据RDBMS中的每个数据库定义DataSource
,然后动态选择一个建议here并不是一个选项,因为数据库是动态创建和销毁的。基本上我需要像JDBC的Connection.setCatalog(String catalog)
一样的东西,但我没有发现Spring JdbcTemplate
中有类似的东西。
DelegatingDataSource
包装数据源,以便在getConnection()
调用时调用setCatalog()
。 - user180100new JdbcTemplate(new MyDelegatingDS(dataSource, "catalogName"));
就像这样 - user180100