我在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>
我认为我的程序没有检测到驱动程序。
答案 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();