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

时间:2013-01-27 12:00:56

标签: java database netbeans database-connection derby

我正在尝试编译这一小段代码,以帮助我连接到我的数据库并检索一些信息来测试它。我在Windows 7 x64机器上使用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',但都不起作用。

我也已经从here读过,但仍然无法弄清楚为什么URl不正确:

3 个答案:

答案 0 :(得分:2)

不确定数据库URL连接的问题,但是使用了正确的驱动程序。如果嵌入了数据库,您应该使用我的answer中的帖子和示例中注释的驱动程序,还有tutorial embedded derby

如果没有则使用

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

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

答案 1 :(得分:2)

确保derbyrun.jar在您的类路径中。它驻留在JDK的db / lib目录中。

答案 2 :(得分:0)

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

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

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