我正在研究正在执行以下操作的引擎:
处理和隔离数据库连接管理的标准设置是创建一个DataSource bean(我使用Spring连接我的组件)并将其注入我的ProviderConfigDao(加载连接配置)和ContentDao(使用连接细节加载数据)以前加载过)。这样可以很好地隔离连接与实际代码的处理,因此DAO类不需要知道如何以及何时创建/打开/关闭连接等。
不幸的是,这种设置不起作用,因为当我创建连接时,我需要能够指定数据库模式。我从一开始就不知道所有不同的模式,因此我无法创建一组DataSource对象来覆盖所有这些模式,因此必须在运行时创建DataSource对象,并且它的创建对用户是隐藏的。
我能想到的唯一解决方案是:
让另一个类/接口(DataSourceProvider)有一个方法:
//Gets the connection URL as parameter (which includes the schema name).
DataSource getDataSource(String url);
这不是一个糟糕的解决方案,但我想知道是否在某些开源软件包中可能支持这样的东西...我宁愿使用已经完成的东西并进行测试然后重新发明轮子。
干杯, 燕姿。
答案 0 :(得分:0)
有一个JDBC Utils可以从数据库org.springframework.jdbc.support.JdbcUtils
获取所有元数据
参数:
org.springframework.jdbc.support.DatabaseMetaDataCallback