0

我已经创建了到我的模式“DASH104582”的 JDBC 连接,并且我使用的是 java 第 7 版,我已经在 google 中下载了 jar 文件并粘贴在 external_lib 文件夹下。这是我的连接代码

DriverManager.getConnection("jdbc:db2://yp-dashdb-small-01-lon02.services.eu-gb.bluemix.net:50001/BLUDB:sslConnection=true");.

我试图从 dashdb 中选择数据。

如果我运行程序,它会显示错误

java.sql.SQLException:找不到适合 jdbc 的驱动程序:db2://yp-dashdb-small-01-lon02.services.eu-gb.bluemix.net:50001/BLUDB:sslConnection=true

请解决我的问题,由于您有任何示例代码给我..,

4

1 回答 1

1

您提供的 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 语法的异常。

于 2015-09-06T02:47:18.897 回答