找不到JDBC Derby驱动程序

我遵循了JDBC教程: http : //docs.oracle.com/javase/tutorial/jdbc/basics/gettingstarted.html ,并设法构建和创建我自己的JDBC数据库,而不用太大惊小怪。 但是现在当尝试从java应用程序连接到数据库时,我收到了exception:

java.sql.SQLException:找不到适合jdbc:derby: db目录的驱动程序

然后在尝试使用以下方法手动指定JDBC驱动程序时:

Class.forName("org.apache.derby.jdbc.EmbeddedDriver"); 

我收到以下exception错误:

java.lang.ClassNotFoundException:org.apache.derby.jdbc.EmbeddedDriver

我很肯定该驱动程序应该没有加载问题,因为这是教程中指定的驱动程序,并且使用该驱动程序创建数据库没有问题。 我在事件尝试在连接语句的末尾添加属性“; create = true”以尝试创建一个全新的数据库,但我仍然收到相同的exception错误。

请参阅下面的应用程序代码。 任何帮助都会很棒:)。

 package com.ddg; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class SQLConnect { Connection Conn = null; String URL; String Username; String Password; public SQLConnect() { try { Class.forName("org.apache.derby.jdbc.EmbeddedDriver"); } catch (ClassNotFoundException e) { System.out.println(e.toString()); } URL = "jdbc:derby:*directory name*"; System.out.println("Created SQL Connect"); } public void CreateConnection() { try { Conn = DriverManager.getConnection(URL); System.out.println("Successfully Connected"); } catch (SQLException e) { System.out.println(e.toString()); } } public void CloseConnection() { try { this.Conn.close(); System.out.println("Connection successfully closed"); } catch (SQLException e) { System.out.println(e.toString()); } } public static void main(String args[]) { SQLConnect sql = new SQLConnect(); sql.CreateConnection(); sql.CloseConnection(); } } 

java.sql.SQLException:找不到适合jdbc:derby:db目录的驱动程序

所以你的错误可能是由以下原因造成

未正确加载驱动程序或您的URL格式错误。 所以首先你需要确保*.jar在classpath中。 一探究竟。

还尝试将您的URL更改为:

 jdbc:derby:///;create=true 

create=true将确保在不存在的情况下创建db。

更新:

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

你说你已经按照教程了。 在本教程中,您必须安装JDBC驱动程序。

安装JDBC驱动程序通常包括将驱动程序复制到计算机,然后将其位置添加到类路径中。

安装驱动程序后运行

 java.lang.ClassNotFoundException: org.apache.derby.jdbc.EmbeddedDriver 

只有你弄乱了正确的潜水员才有可能。

你用过了

 org.apache.derby.jdbc.EmbeddedDriver 

加载驱动程序

但应该使用

 org.apache.derby.jdbc.ClientDriver 

如果您有这种类型的错误

 java.lang.ClassNotFoundException: org.apache.derby.jdbc.ClientDriver 

并且您正在使用netbeans然后您必须遵循以下步骤:

  1. 右键单击库
  2. 选择添加库选项,然后从库列表中选择“Java DB Driver”

在此处输入图像描述

Java JDK附带两者

 org.apache.derby.jdbc.EmbeddedDriver org.apache.derby.jdbc.ClientDriver 

在eclipse中,将以下jar添加到已使用的JRE(JDK)或显式添加到您的项目中。

 [JDK]db/lib/derby.jar (EmbeddedDriver) [JDK]db/lib/derbyclient.jar (ClientDriver) 

对于runtine,你需要为你的java应用程序提供适当的jar。

有关详细信息, 请参阅https://db.apache.org/derby/papers/DerbyTut/install_software.html#derby_configure中的“设置DERBY_INSTALL”和“配置嵌入式Derby”部分。

Derby是JavaSE安装的一部分,我在链接中显示了设置环境变量DERBY_HOME而不是DERBY_INSTALL

 C:\> set DERBY_HOME=c:\Program Files\Java\jdk1.8.0_60\db C:\> set CLASSPATH=%DERBY_INSTALL%\lib\derby.jar;%DERBY_INSTALL%\lib\derbytools.jar;. C:\> cd %DERBY_INSTALL%\bin c:\Program Files\Java\jdk1.8.0_60\db\bin> setEmbeddedCP.bat