Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/lang/builder/CompareToBuilder

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/lang/builder/CompareToBuilder

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));
        }
    }

I am getting exception in thread main as Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/lang/builder/CompareToBuilder

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

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

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

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

这种情况下,URL格式是这样的:

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

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

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