Java 未找到JDBC Derby驱动程序
我遵循了JDBC教程:,并成功地构建和创建了自己的JDBC数据库,没有太多麻烦。但是,现在当尝试从java应用程序连接到数据库时,我收到一个异常: java.sql.SQLException:未找到适用于jdbc:derby:db的驱动程序 目录 然后,在尝试使用以下命令手动指定JDBC驱动程序时:Java 未找到JDBC Derby驱动程序,java,sql,database,jdbc,Java,Sql,Database,Jdbc,我遵循了JDBC教程:,并成功地构建和创建了自己的JDBC数据库,没有太多麻烦。但是,现在当尝试从java应用程序连接到数据库时,我收到一个异常: java.sql.SQLException:未找到适用于jdbc:derby:db的驱动程序 目录 然后,在尝试使用以下命令手动指定JDBC驱动程序时: Class.forName("org.apache.derby.jdbc.EmbeddedDriver"); 我得到以下异常错误: java.lang.ClassNotFoundException
Class.forName("org.apache.derby.jdbc.EmbeddedDriver");
我得到以下异常错误:
java.lang.ClassNotFoundException:org.apache.derby.jdbc.EmbeddedDriver
我确信该驱动程序在加载时应该没有问题,因为它是教程中指定的驱动程序,并且使用该驱动程序创建数据库时没有问题。我尝试在connection语句的末尾添加属性“create=true”,以尝试创建一个全新的数据库,但仍然收到相同的异常错误
请看下面我的申请代码。
任何帮助都会很棒:)
java.sql.SQLException:未找到适用于jdbc:derby:db的驱动程序
目录
因此,您的错误可能是由以下原因引起的:
驱动程序加载不正确或您的URL
格式不正确。因此,首先需要确保*.jar
位于类路径中。看看吧
同时尝试将您的URL
更改为:
jdbc:derby://<path>/<databasename>;create=true
jdbc:derby://;create=true
create=true
将确保在数据库不存在时创建数据库
更新:
看看这张卡片:你说你已经按照教程做了。在本教程中,您必须安装JDBC驱动程序 安装JDBC驱动程序通常包括将驱动程序复制到 您的计算机,然后将其位置添加到类路径 安装您运行的驱动程序后
java.lang.ClassNotFoundException: org.apache.derby.jdbc.EmbeddedDriver
只有当你搞错了正确的潜水员,这才有可能
你用过
org.apache.derby.jdbc.EmbeddedDriver
加载驱动程序
但应该使用
org.apache.derby.jdbc.ClientDriver
有关详细信息,请参阅的“设置DERBY_安装”和“配置嵌入式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
如果您有这种类型的错误
java.lang.ClassNotFoundException: org.apache.derby.jdbc.ClientDriver
如果您使用的是netbeans
,则必须遵循以下步骤:
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。我已经将任何需要的jdbc驱动程序放在了jre\lib\ext目录中。 在我的系统上是:X:\Java\jre1.8.0\u 181\lib\ext
希望能有所帮助。在使用客户端驱动程序时,我得到了java.lang.ClassNotFoundException。 我使用了最新的驱动程序二进制文件,这是个错误 当时,最新的驱动程序二进制文件是10.15.1.3,就在这里: 我使用的是Java8,我使用的是Hibernate5.4.2.Final。
然而,驱动程序是针对Java9编译的 我最近发现,如果使用
jlink
创建运行时,可能需要包含额外的jdk模块,以允许驱动程序实例化
在我的例子中,我需要在映像中包含
java.naming
和java.management
模块。如何指定类路径?能否尝试“jdbc:derby:+dbName+”create=true”
?将derby.jar添加到您的类路径中。@lhuang我刚刚尝试了您的第一个建议,收到了相同的错误消息:找不到驱动程序。关于你的第二个建议,我如何将它添加到我的项目类路径中?我已经下载了Derby库文件并将其添加到我的Windows环境变量路径中。如果您是通过命令行运行Java,则应该将JAR添加到类路径环境,而不是路径。如果您正在使用eclipse,请参阅如何知道Ice Phoenix正在使用Derby服务器?因为ClassNotFoundException
用于嵌入式驱动程序,因此不使用嵌入式。但是如果他正在使用嵌入式DB,则必须使用嵌入式驱动程序。如果他使用的是服务器连接,他必须首先启动服务器,这是他的帖子没有提到的。@a_horse_和_no_name如果更改驱动程序将解决问题,那么我的任务就完成了。感谢建议人员,但如上所述,结果证明它与不引用驱动程序一样简单:)。非常感谢你在这方面的意见,谢谢。谢谢你的建议。事实证明,我缺少引用库(Classpath)中所需的derby文件。将它们添加到数据库中,可以创建一个新的数据库,甚至可以链接到我的旧数据库。现在只需要了解如何使用外部IP地址链接到数据库(哈哈:)
[JDK]db/lib/derby.jar (EmbeddedDriver)
[JDK]db/lib/derbyclient.jar (ClientDriver)