Redshift和Postgres JDBC驱动程序都拦截了jdbc:// postgresql连接字符串

Chr*_*oll 8 java postgresql spring jdbc amazon-redshift

我有一个问题,我不太确定如何解决:我有一个Web应用程序(打包为战争),客户端可以配置他们希望指向哪个数据库.我们支持PostgreSQL和Redshift(以及其他).JDBC4驱动程序是自动加载的,这很好.这是问题所在:

似乎Redshift JDBC驱动程序将在PostgreSQL之前响应jdbc:// postgresql连接字符串.连接到PostgreSQL数据库时,这会导致JDBC错误.

我指定驱动程序名称'org.postgresql.Driver'作为我的pom.xml中数据源的驱动程序,但我不确定spring JDBC模板是如何选择驱动程序的(除非它选择第一个处理程序).

还有其他人遇到过这类问题吗?

Vil*_*lis 16

另一种解决方案是将"OpenSourceSubProtocolOverride = true"添加到常规PostgreSQL连接的JDBC连接字符串中.

例:

jdbc:postgresql://localhost:5432/postgres?OpenSourceSubProtocolOverride=true  
Run Code Online (Sandbox Code Playgroud)