Java 8中不再包含JDBC-ODBC Bridge,因此我尝试了UCanAccess,但我遇到了麻烦。这是我的代码:
package jdbc;
import java.sql.*;
public class jdbc
{
Connection con;
Statement st;
jdbc()
{
try
{
con=DriverManager.getConnection("jdbc:ucanaccess://P:/eclipseWorkspace/databases/signup.accdb");
st=con.createStatement();
st.executeUpdate("INSERT INTO signup (firstName,lastName,email,password) VALUES ('rocky','balboa','rocky@gmail.com','pop')");
System.out.println("SUCCESS");
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
class main
{
public static void main(String args[])
{
new jdbc();
}
}
我已经包含了一些外部罐子,如图所示:
http://i.imgur.com/ujhPP0l.png?1
当我运行它时,它给出了一个包含ClassNotFoundException和NoClassDefFound错误的堆栈跟踪,如下所示:
http://i.imgur.com/UACP77k.png?1
我的代码出了什么问题?
答案 0 :(得分:1)
UCanAccess有几个依赖项,其中一个是commons-lang-2.x(2.4或更新版本)。您在项目中使用commons-lang3-3.3.2,因此UCanAccess(实际上是Jackcess)找不到commons-lang-2.x类。
当您解压缩UCanAccess分发时,它创建了一个lib/
文件夹,其中包含所需依赖项的兼容版本。您需要使用UCanAccess commons-lang3-3.3.2.jar
文件夹中的commons-lang-2.6.jar
替换项目中的lib/
引用。