SQLException: No suitable driver found for jdbc:derby://localhost:1527 SQL异常:找不到适合jdbc:derby://localhost:1527的驱动程序。

31

我在Netbeans中遇到了这个错误:

java.sql.SQLException: No suitable driver found for jdbc:derby://localhost:1527/
这是什么原因,我应该如何解决?

可能是重复的问题,参考臭名昭著的java.sql.SQLException: No suitable driver found - BalusC
19个回答

0

我刚刚遇到了这个问题,尝试了以上所有建议但仍然失败。不重复上面的建议,以下是可能会被忽略的事项: 如果你正在使用Maven,很可能你会声明依赖项,例如:

<groupId>org.apache.derby</groupId>
<artifactId>derbyclient</artifactId>
<version>10.10.1.1</version>

请注意版本问题,它必须与您正在运行的服务器实例兼容。
我通过放弃maven依赖项提供的内容并手动添加来自"%JAVA_HOME%\db\lib"的外部jar解决了我的问题,这是我正在运行的服务器的相同来源。在这种情况下,我正在使用我的本地测试。
因此,如果您正在使用远程服务器实例进行测试,请查找随服务器软件包一起提供的derbyclient.jar。

0

您可能忘记启动Derby服务器。

一旦Derby服务器启动,它就会开始监听默认端口1527。

启动脚本位于以下位置:

Windows:

    <DERBY_INSTALLATION_DIRECTORY>/bin/startNetworkServer.bat

Linux:

    <DERBY_INSTALLATION_DIRECTORY>/bin/startNetworkServer

0

我尝试了这个帖子中提到的所有方法,只有 .registerDriver() 对我有效。这是我现在代码的一部分:

DriverManager.registerDriver(new org.apache.derby.jdbc.ClientDriver());
connection = DriverManager.getConnection(url, user, pass);

请注意,问题不在嵌入式Derby中。

0

也有可能在 persistence.xml 中使用EmbeddedDriver,而 jdbc url 却指向 Derby 服务器。这种情况下,请将 url 更改为指向数据库路径即可。


0

如果Java DB服务器尚未启动,您也可能会收到相同的错误。


0
我尝试了上面的答案,但都没有起作用。对我有用的是将依赖项放入项目中,就像上面所说的那样。
然后进入依赖项文件夹,在依赖项derbyshared.jar和derbyclient.jar上右键单击并选择“添加本地源”。将两个依赖项与您的derby文件夹中的本地jar文件连接起来,就完成了。也许只是Netbeans的问题。

0
如果数据库已经创建并且您已经启动了连接,那么您所需要做的就是添加驱动程序jar包。从项目窗口中,右键单击库文件夹,转到c:programsfiles\sun\javadb\lib\derbyclient.jar。加载文件,然后您应该能够运行。
祝一切顺利。

0

遇到了同样的问题。我正在做类似于:

connect 'jdbc:derby://localhost:1527/~/databases/db1'

用绝对路径替换路径可以解决这个问题:

connect 'jdbc:derby://localhost:1527//Users/ayush99/databases/db1'.

总之:避免在现有数据库的路径中使用~或任何类似的变量。


0

当连接字符串的语法无效时,会出现此错误。

您可以使用以下连接字符串

'jdbc:derby:MyDbTest;create=true'

或者

您可以在命令提示符中使用以下命令,下面的命令成功创建了一个名为MyDbTest的新数据库:

connect 'jdbc:derby:MyDbTest;create=true';

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接