找不到JDBC Derby驱动程序

Ice*_*nix 10 java sql database jdbc

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

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

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

Class.forName("org.apache.derby.jdbc.EmbeddedDriver");
Run Code Online (Sandbox Code Playgroud)

我收到以下异常错误:

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

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

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

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();
    }
}
Run Code Online (Sandbox Code Playgroud)

Sim*_*iak 10

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

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

驱动程序未正确加载或您URL的格式错误.所以首先你需要确保你*.jar在classpath中.看看这个.

还尝试将您更改URL为:

jdbc:derby://<path>/<databasename>;create=true
Run Code Online (Sandbox Code Playgroud)

create=true 将确保如果不存在,将创建数据库.

更新:

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


小智 5

如果您遇到这种类型的错误

java.lang.ClassNotFoundException: org.apache.derby.jdbc.ClientDriver
Run Code Online (Sandbox Code Playgroud)

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

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

在此处输入图片说明


ste*_*ert 5

Java JDK 都带有

org.apache.derby.jdbc.EmbeddedDriver
org.apache.derby.jdbc.ClientDriver
Run Code Online (Sandbox Code Playgroud)

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

[JDK]db/lib/derby.jar (EmbeddedDriver)
[JDK]db/lib/derbyclient.jar (ClientDriver)
Run Code Online (Sandbox Code Playgroud)

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