Java SQL错误,找不到合适的驱动程序

Java SQL错误,找不到合适的驱动程序,java,database,netbeans,database-connection,derby,Java,Database,Netbeans,Database Connection,Derby,我正试图编译这段代码,以帮助我连接到数据库并检索一些信息来测试它。我在Windows7x64机器上使用Netbeans。代码如下: package passwordprotector; import java.sql.*; public class PasswordProtector { /** * @param args the command line arguments */ public static void main(String[] args) { String h

我正试图编译这段代码,以帮助我连接到数据库并检索一些信息来测试它。我在Windows7x64机器上使用Netbeans。代码如下:

package passwordprotector;
import java.sql.*;

public class PasswordProtector {

/**
 * @param args the command line arguments
 */
public static void main(String[] args) {
    String host = "jdbc:derby://localhost:1527/PasswordProtector DB";
    String dbUsername = "john"; 
    String dbPassword = "arsenal";

    /*try{
        Class.forName("org.apache.derby.jdbc.EmbeddedDriver");
    }catch(ClassNotFoundException e){
        System.out.println(e);
    }*/

    try{
        Connection con = DriverManager.getConnection(host, dbUsername, dbPassword);
        Statement stmt = con.createStatement();

        ResultSet rs = stmt.executeQuery("SELECT * FROM APP.PERSON");

        while (rs.next()) {
            String uName = rs.getString("uname");
            String uPass = rs.getString("upass");
            System.out.println("Username: " + uName + "/n" + "Password: " + uPass);
        }
    }catch(SQLException e){
        System.err.println(e);
    }
}
}
编译和运行时,我收到以下错误:

java.sql.SQLException: No suitable driver found for jdbc:derby://localhost:1527/PasswordProtector DB
BUILD SUCCESSFUL (total time: 0 seconds)
当我右键单击我的数据库并选择属性时,我可以看到它的位置,如下所示:

Database URL: jdbc:derby://localhost:1527/PasswordProtector
我已经与其他人谁已经张贴了这一点,似乎他们有一个错误的网址作为问题,但我看不到任何其他网址,我可以使用除了一个张贴

我尝试过使用和不使用字符串主机的结尾“DB”,两者都不起作用


我也已经阅读了,但仍然无法找出URl不正确的原因:

不确定数据库URl连接是否有问题,但使用了正确的驱动程序。如果数据库是嵌入式的,你应该使用你的帖子中评论的驱动程序和我的例子,还有

如果没有,则使用

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

连接到独立运行的数据库是另一种驱动程序。在这种情况下,请参阅如何配置和运行derby网络客户端的文档。

不确定数据库URL连接是否存在问题,但确定是否使用了正确的驱动程序。如果数据库是嵌入式的,你应该使用你的帖子中评论的驱动程序和我的例子,还有

如果没有,则使用

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

连接到独立运行的数据库是另一种驱动程序。在本例中,请参阅如何配置和运行derby网络客户端的文档。

确保derbyrun.jar位于类路径中。它位于JDK的db/lib目录中。

确保derbyrun.jar位于类路径中。它位于JDK的db/lib目录中。

在Maven和Derby上进行快速搜索,在我的pom中包括以下内容:

<dependency>
    <groupId>org.apache.derby</groupId>
    <artifactId>derbyclient</artifactId>
    <version>10.10.2.0</version>
</dependency>

org.apache.derby
德比客户机
10.10.2.0

之后一切正常,因此如果以前的解决方案不起作用,这可能是一个库参考问题。

快速搜索Maven和Derby,在我的pom中包括以下内容:

<dependency>
    <groupId>org.apache.derby</groupId>
    <artifactId>derbyclient</artifactId>
    <version>10.10.2.0</version>
</dependency>

org.apache.derby
德比客户机
10.10.2.0


之后一切正常,因此如果以前的解决方案不起作用,这可能是一个库参考问题。

为什么要评论加载驱动程序?我读到Java 6以上版本不需要它,正如这里所述(顶部答案),我已经尝试了有无。两者都不起作用。这是我得到的结果:run:java.lang.ClassNotFoundException:org.apache.derby.jdbc.EmbeddedDriverWhy您对加载驱动程序进行了评论?我读到java 6以上版本不需要它,正如这里所述(顶部答案),我已经尝试了使用和不使用。这是我得到的:run:java.lang.ClassNotFoundException:org.apache.derby.jdbc.EmbeddedDriver我不确定驱动程序是否嵌入了,我是否诚实。我试着使用你的答案,我得到:run:java.lang.ClassNotFoundException:org.apache.derby.jdbc.EmbeddedDriver,但我在代码中也使用了ClientDriver而不是EmbeddedDriver,两者都不起作用。你如何运行,我需要知道你是否在运行嵌入式?你是否在运行应用程序时单独启动derby数据库?我不确定如何检查,但我认为这回答了你的问题-当第一次打开Netbeans时,我必须右键单击数据库并选择“连接…”。这是一个新项目,我还没有实际的可运行类。@JohnVasiliou我可以访问您的系统/DB吗?我不确定驱动程序是否嵌入了,我是否诚实。我试着使用你的答案,我得到:run:java.lang.ClassNotFoundException:org.apache.derby.jdbc.EmbeddedDriver,但我在代码中也使用了ClientDriver而不是EmbeddedDriver,两者都不起作用。你如何运行,我需要知道你是否在运行嵌入式?你是否在运行应用程序时单独启动derby数据库?我不确定如何检查,但我认为这回答了你的问题-当第一次打开Netbeans时,我必须右键单击数据库并选择“连接…”。这是一个新项目,我还没有实际的可运行类。@JohnVasiliou我可以访问您的系统/DB吗?我已经这样做了,我已经将derbyrun.jar添加到我的类路径中。在Netbeans中,我右键单击了我的项目、属性、库、添加jar,并添加了正确的文件——不走运。在Netbeans中,我右键单击了我的项目、属性、库、addjar,并添加了正确的文件——不走运。