线程“主”中的异常java.lang.NoClassDefFoundError:org / apache / commons / lang / builder / CompareToBuilder

时间:2018-10-26 15:29:36

标签: java ms-access ucanaccess jackcess

package myJavaPrograms;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class AccessDBFiles {
    public static void main(String[] args) throws SQLException  {
        Connection conn=DriverManager.getConnection(
                "jdbc:ucanaccess://C:\\TESTFILE\\Database11.accdb");
        Statement s = conn.createStatement();
        ResultSet rs = s.executeQuery("SELECT * FROM myTable");
        while (rs.next()) {
            System.out.println(rs.getString(1));
        }
    }
  

我在线程main中得到异常,作为线程“ main”中的异常   java.lang.NoClassDefFoundError:   org / apache / commons / lang / builder / CompareToBuilder   External Jars added to project

2 个答案:

答案 0 :(得分:0)

我看到您正在使用纯的JDBC驱动程序UCanAccess。这种情况下,您必须加载此驱动程序:

Class.forName("net.ucanaccess.jdbc.UcanaccessDriver");

或者,您可以像这样加载JDBC / ODBC驱动程序类:

 Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

在这种情况下,URL格式如下:

jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=myDB.mdb;

此外,不要忘记关闭资源:ResultSet,Statement和Connection。

答案 1 :(得分:0)

UCanAccess使用Jackcess,而Jackcess使用commons-lang(v2.x),而不是commons-lang3。 UCanAccess所需的所有依赖项都包含在UCanAccess发行版(.bin.zip文件)的lib文件夹中。