Java:ucanaccess hsqldb java.lang.NoSuchMethodError:

标签 java eclipse hsqldb ucanaccess

我按照此处的说明下载并安装了 uCanAccess jar: Manipulating an Access database from Java without ODBC 我正在学习如何使用 microsoft access db for java,这是我使用的编码

package Main.Net;

import java.sql.*;


public class DataBase {

    Connection con;
    Statement st;
    ResultSet rs;



    public DataBase() {

    }

    private void connect() {

        try {
            //String driver = "sun.jdbc.odbc.jdbcodbcdriver";
            //Class.forName(driver);

            String db = "jdbc:ucanaccess://C:/Users/MyUser/workspace/Connectors_DB.accdb";
            con = DriverManager.getConnection(db);
            st = con.createStatement();
            String sql = "select * from Table";
            rs = st.executeQuery(sql);

            while(rs.next()) {

                String username = rs.getString("Username");
                String password = rs.getString("Password");

                System.out.println(username + "\t" + password);
            }

        } catch(Exception e) {
            e.printStackTrace();
        }
    }

    public static void main(String[] args) {
        new DataBase().connect();
    }
}

当我运行java程序时,出现这个错误

Exception in thread "main" java.lang.NoSuchMethodError: org.hsqldb.DatabaseURL.parseURL(Ljava/lang/String;ZZ)Lorg/hsqldb/persist/HsqlProperties;
at org.hsqldb.jdbc.JDBCDriver.getConnection(Unknown Source)
at org.hsqldb.jdbc.JDBCDriver.connect(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at net.ucanaccess.jdbc.DBReference.getHSQLDBConnection(DBReference.java:354)
at net.ucanaccess.jdbc.UcanaccessDriver.connect(UcanaccessDriver.java:206)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at Main.Net.DataBase.connect(DataBase.java:23)
at Main.Net.DataBase.main(DataBase.java:42)

这段代码有错误:

String db = "jdbc:ucanaccess://C:/Users/MyUser/workspace/Connectors_DB.accdb";
con = DriverManager.getConnection(db);

和hsqldb的版本有关系吗?因为如果是这样,我已经尝试下载其他版本的 hsqldb 并出现相同的错误

这是我正在使用的 jar :

ucanaccess-2.0.9.3.jar

commons-lang-2.6.jar

commons-logging-1.1.1.jar

hsqldb.jar

jackcess-2.0.8.jar

那么...我该如何解决这个问题?

最佳答案

this thread中的答案建议您的类路径上有多个 hsqldb 版本。也许其他涉及的 jar 之一也包含 hsqldb ?您可以使用您选择的 zip 工具或命令 jar -tf foo.jar 来检查它们。

关于Java:ucanaccess hsqldb java.lang.NoSuchMethodError:,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28353335/

相关文章:

java - 如何打开新窗口

java - Android如何复用Socket?

java - 将 Jersey 日志过滤器重定向到 logback

java - 在命令行中创建 Eclipse Java 项目

java - Spring Data JDBC 的奇怪一对多行为

java - JDBC 创建表

java - Spring Boot 应用程序 Post 方法调用,405 : Method Not Allowed

java - e JUnit 测试是否有可能判断它是否在 Eclipse 中运行(而不是 ant)

eclipse - 如何创建自定义 Eclipse 语法荧光笔

java - HSQL 数据库中的连接方式