Java: ucanaccess hsqldb java.lang.NoSuchMethodError:

1

Я загрузил и установил банки uCanAccess, следуя инструкциям отсюда: Манипулирование базы данных Access из Java без ODBC. Я изучаю, как использовать db для доступа к Microsoft для 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 и появилась такая же ошибка

вот банки, которые я использую:

ucanaccess-2.0.9.3.jar

Обще-Ланг-2.6.jar

Обще-каротаж 1.1.1.jar

hsqldb.jar

jackcess-2.0.8.jar

так... как я могу это исправить?

  • 0
    Что ж, непосредственная причина ошибки очевидна. Относительно того, как может возникнуть такая ситуация, существует несколько механизмов, но наиболее распространенными на сегодняшний день являются несоответствующие файлы JAR.
Теги:
hsqldb
ucanaccess

1 ответ

2
Лучший ответ

Ответы в этом потоке позволяют предположить, что на вашем пути к классам существует несколько hsqldb-версий. Может быть, один из других задействованных банок содержит hsqldb? Вы можете проверить их с помощью zip-инструмента по вашему выбору или команды jar -tf foo.jar.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню