您提供的 URL 格式暗示 JDBC 类型 4 连接类型。为此,请确保您使用的是 db2jcc4.jar 驱动程序 JAR,而不是 db2jcc.jar 驱动程序 JAR。
在调用程序的环境中的 CLASSPATH 中包含 db2jcc4.jar JAR 的完整路径。不要在 CLASSPATH 中包含 db2jcc.jar。
您提到将 jar 放在“extension_lib”下。我怀疑您的意思是 JRE 安装下的 ext/lib 目录。尽管这在原则上是可行的,除非您有一些非常具体的原因将此驱动程序 JAR 视为 JRE 安装的扩展,否则您应该简单地将驱动程序 JAR 的路径添加到 CLASSPATH。
如果您在 UNIX/Linux 环境中运行您的应用程序,请确保为运行您的应用程序的用户启用了对驱动程序 JAR 文件的读取访问权限(例如 chmod a+r ./db2jcc4.jar)。
作为在运行时成功解析驱动程序类的快速检查,您可以在 DriverManager.getConnection() 行之前临时添加此行:
Class.forName("com.ibm.db2.jcc.DB2Driver");
如果无法解析驱动程序类,此行将抛出 ClassNotFoundException 并且您将知道您没有在 CLASSPATH 中正确包含 db2jcc4.jar。
请注意,一旦您处理了上述所有内容,您的 DriverManager.getConnection() 调用,您编写它的方式,仍然会抛出异常(尽管不同),原因如下:
1)您没有包含用户凭据。要么直接将它们包含在连接 URL 字符串中,要么将它们作为用户和密码属性添加到 java.util.Properties 对象,然后您需要将其指定为 DriverManager.getConnection() 调用中的第二个参数。
2) 在连接 URL 的末尾指定分号。您的 URL 以“sslConnection=true”结尾,它应该以“sslConnection=true;”结尾 否则你会得到指示无效 URL 语法的异常。