使用apache derby的例外

时间:2017-12-01 04:45:40

标签: java eclipse maven derby

我在Eclipse上使用apach derby获得了以下异常:

java.lang.ClassNotFoundException: org.apache.derby.jdbc.EmbededDriver.at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)


这是我的代码:

 private static void createConnection()
    {
        try
        {
            Class.forName("org.apache.derby.jdbc").newInstance();
            //Get a connection
            conn = DriverManager.getConnection(dbURL); 
        }
        catch (Exception except)
        {
            except.printStackTrace();
        }
    }

我用于我的maven项目的maven依赖是:

<!-- https://mvnrepository.com/artifact/org.apache.derby/derby -->
<dependency>
    <groupId>org.apache.derby</groupId>
    <artifactId>derby</artifactId>
    <version>10.14.1.0</version>
    <scope>test</scope>
</dependency>

我认为我的程序没有检测到驱动程序。

1 个答案:

答案 0 :(得分:2)

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

你在这里定义的似乎是一个包,而不是一个类。我假设你在那里写了org.apache.derby.jdbc.EmbededDriver,当你在这里复制粘贴代码时,类名就消失了。

org.apache.derby.jdbc.EmbededDriver类不存在,因为缺少“d”,它应该是org.apache.derby.jdbc.EmbeddedDriver

所以要更正代码,请使用

Class.forName("org.apache.derby.jdbc.EmbeddedDriver").newInstance();