1

Java 8 中不再包含 JDBC-ODBC 桥,所以我尝试了 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

我的代码有什么问题?

4

1 回答 1

1

UCanAccess 有几个依赖项,其中之一是 commons-lang-2.x(2.4 或更高版本)。您在项目中使用 commons-lang3-3.3.2,因此 UCanAccess(实际上是 Jackcess)找不到 commons-lang-2.x 类。

当您解压缩 UCanAccess 发行版时,它会创建一个lib/文件夹,其中包含所需依赖项的兼容版本。您需要将commons-lang3-3.3.2.jar项目中的引用替换commons-lang-2.6.jar为 UCanAccesslib/文件夹中的引用。

于 2014-05-24T08:55:56.800 回答