SQLException:没有为jdbc找到合适的驱动程序:derby:// localhost:1527

Gan*_*esh 24 java jdbc derby

我在Netbeans中收到此错误:

java.sql.SQLException: No suitable driver found for jdbc:derby://localhost:1527/
Run Code Online (Sandbox Code Playgroud)

这是怎么造成的,我该如何解决?

Pas*_*ent 26

java.sql.SQLException:没有为jdbc找到合适的驱动程序:derby:// localhost:1527 /

此异常有两个原因:

  • 驱动程序未加载.
  • JDBC URL格式错误.

在您的情况下,我希望在连接字符串的末尾看到一个数据库名称.例如(create=true如果您希望在不存在的情况下创建数据库,请使用):

jdbc:derby://localhost:1527/dbname;create=true
Run Code Online (Sandbox Code Playgroud)

默认情况下,在启动网络服务器的目录中创建数据库.但您也可以指定数据库位置的绝对路径:

jdbc:derby://localhost:1527//home/pascal/derbyDBs/dbname;create=true
Run Code Online (Sandbox Code Playgroud)

为了以防万一,请检查derbyclient.jar是否在类路径上,并且org.apache.derby.jdbc.ClientDriver在服务器模式下工作时正在加载相应的驱动程序.


Dev*_*evy 19

注意:您可以从这里下载.

如果你找不到它,那么

  1. 在项目选择选项卡中查找项目

  2. 右键单击"库"

  3. 点击"添加JAR /文件夹..."

  4. 选择"derbyclient.jar"

  5. 单击"打开",然后您将在"库"下看到"derbyclient.jar"

确保您的URL,用户名,密码正确,并运行您的代码:)


Bru*_*ard 11

为了我

DriverManager.registerDriver(new org.apache.derby.jdbc.EmbeddedDriver());
Run Code Online (Sandbox Code Playgroud)

帮助.通过这种方式,DriveManager确实知道了derby EmbeddedDriver.也许分配一个新的EmbeddedDriver很重,但另一方面,Class.forName需要try/catch/doSomethingIntelligentWithException,我不太喜欢.


Bal*_*usC 5

JDBCDriverManager找不到任何适合Driver给定的连接 URL。连接数据库之前根本没有加载 JDBC 驱动程序,或者连接 URL 错误。由于连接 URL 看起来不错,我敢打赌驱动程序根本没有加载。在连接数据库之前,您需要在应用程序启动期间加载驱动程序。对于 Apache Derby,驱动程序类名称是org.apache.derby.jdbc.ClientDriver。所以:

Class.forName("org.apache.derby.jdbc.ClientDriver");
Run Code Online (Sandbox Code Playgroud)

  • 实际上,根据连接 URL,我认为他们使用的是 ClientDriver,而不是 EmbeddedDriver。所以它应该是 org.apache.derby.jdbc.ClientDriver。 (2认同)