【问题标题】:No Suitable Driver Found..still没有找到合适的驱动程序..仍然
【发布时间】:2014-02-28 19:03:21
【问题描述】:

我收到以下错误(注意:我使用的是 Netbeans):

java.sql.SQLException: No suitable driver found for jdbc:derby://localhost:7001/LF_JHU_DERBY
at java.sql.DriverManager.getConnection(DriverManager.java:596)
at java.sql.DriverManager.getConnection(DriverManager.java:215)
at randomtests.UFTest.main(UFTest.java:38)

我的代码的相关部分是:

Class.forName("org.apache.derby.jdbc.EmbeddedDriver");
DriverManager.getConnection("jdbc:derby://localhost:7001/JP_JHU_DERBY", username, password);

我的 Java/Extensions 目录中有 derby.jar 文件,但没有找到嵌入式驱动程序。所以我有几个问题:

  1. 它不应该有来自Class.forName() 方法的JDBC 驱动程序吗?为什么getConnection()会突然出现问题?

  2. 我以为我什至不必使用较新的 JDK 加载驱动程序。我正在使用 Netbeans 并且(我认为是成功的)将 netbeans.conf 文件设置为最新的 JDK(使用“netbeans_jdkhome="/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home")。我是什么不见了?

【问题讨论】:

标签: java jdbc driver derby sqlexception


【解决方案1】:

Apache Derby 可以以两种不同的模式运行:

  1. 作为网络服务器
  2. 在 JVM 内存中。

驱动程序org.apache.derby.jdbc.EmbeddedDriver 只能处理内存数据库。该 URL 的格式为 "jdbc:derby:/path/to/database"

但是您的 URL 是一个用于网络服务器的 URL,它不是由嵌入式驱动程序处理的。要连接到 derby 服务器,您必须使用驱动程序类org.apache.derby.jdbc.ClientDriver

【讨论】:

  • 首先,感谢您的帮助!现在...我将 ClientDriver 放在 Class.forName() 中,现在它正在抛出 ClassNotFound...但是 Java/Extensions 中的 derby.jar 不应该解决这个问题吗? (就像我使用嵌入式驱动程序时那样?)
  • @Jo.P:也许你的 JDK 没有安装 JavaDB(安装过程中可以取消选择 - 我通常也会这样做)
  • 它是德比“东西”的一部分,是的。所以也许你没有将正确的 jar 文件添加到你的类路径中。您需要添加derby.jar
  • 我刚刚尝试了“sun.jdbc.odbc.JdbcOdbcDriver”和ClassNotFound……所以也许你说的是对的,尽管我仍然不明白它与我所拥有的德比战有什么关系: (
  • @Jo.P sun.jdbc.odbc.JdbcOdbcDriver 是 Java 运行时的一部分。这应该不会给你一个 ClassNotFoundException 除非你运行的 Java 8 JDBC/ODBC 桥被删除了。
猜你喜欢
  • 2019-01-10
  • 1970-01-01
  • 2016-01-05
  • 2011-10-21
  • 1970-01-01
  • 2012-12-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多