DataSource 有效连接但 getURL returns 为空?

DataSource valid connection but getURL returns null?

我通过 Payara (Glassfish) 上的 Informix 向我报告了这种情况。

是否存在我们可以获得有效连接但 DatabaseMetaData getURL 可能 return 为空的情况?

允许从 DatabaseMetaData.getURL() 返回 null,如 Javadoc 中所述:

Returns: the URL for this DBMS or null if it cannot be generated

DatabaseMetaData.getURL() 方法主要用于提供信息,因此您不应以任何方式依赖其结果。

Informix 驱动程序可能无法获得用于连接的原始 URL,而只是 returns null 在其 DatabaseMetaData.getURL().[=18 的实现中=]

如果您从数据源创建 Informix JDBC 连接,那么从驱动程序的角度来看没有 URL,并且 DatabaseMetaData.getURL() 将 return 为空。

如果您使用 DriverManager 建立连接并传入 URL,那么您应该从元数据中获取 URL。

有人可能会争辩说,连接可以 'build' 来自 DataSource 的 URL 返回给您,但是今天的 Informix JDBC 驱动程序不这样做.