UCanAccess 连接“未找到合适的驱动程序”

问题描述 投票:0回答:2

我不知道我的示例代码有什么问题,我已遵循多个 YouTube 视频和其他在线资源上的所有说明。我就是无法修复它。有人可以解释一下问题是什么以及如何解决它吗?所有必需的库都已添加。

我已经确保所有库都已正确安装,但仍然找不到驱动程序。

这是我的代码

public boolean checkLogin(String username, String password) {       
    try {
        Connection myconObj;

        Class.forName("net.ucanaccess.jdbc.UcanaccessDriver");
        URL databaseLocation = this.getClass().getResource("/com/vanstryp/database/MainUserData.accdb");

        myconObj = DriverManager.getConnection("jdbc:ucanaccess:/" + databaseLocation);
        ResultSet result;
        Statement stmt = conn.createStatement();
        String query = "select * from MainUserData";
        result = stmt.executeQuery(query);

        while (result.next()) {
            String dbUsername = result.getString("Username");
            String dbPassword = result.getString("Password");
            System.out.println();
            if (username.equalsIgnoreCase(dbUsername) && password.equals(dbPassword)) {

                PrintWriter activeUser = new PrintWriter(new FileWriter("activeUser.db"));
                activeUser.println(dbUsername);
                activeUser.close();
                return true;

            }
        }

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

    return false;

}

这是错误消息:

java.sql.SQLException: No suitable driver found for jdbc:ucanaccess:/file:/C:/Users/Jaco%20van%20Stryp/Dropbox/Fitness%20Perfect/build/classes/com/vanstryp/database/MainUserData.accdb
java database ms-access jdbc ucanaccess
2个回答
0
投票

java.sql.SQLException:找不到适合jdbc的驱动程序:ucanaccess:/文件:/C:/Users/Jaco%20van%20Stryp/Dropbox/Fitness%20Perfect/build/classes/com/vanstryp/database/MainUserData.accdb

UCanAccess 连接 URL 必须以

jdbc:ucanaccess://
开头,后跟数据库文件的路径。您的连接 URL 以
jdbc:ucanaccess:/
(只有一个斜线)开头,并且还包含虚假的
file:
指示符。它应该看起来更像这样:

jdbc:ucanaccess://C:/path/to/database/file.accdb

0
投票

我来到这里是为了升级

ucanaccess
库以避免安全漏洞。

如果您的情况如此,请查看此答案

简而言之,改变你的依赖

  <dependency>
    <groupId>net.sf.ucanaccess</groupId>
    <artifactId>ucanaccess</artifactId>
    <version>3.0.6</version>
  </dependency>

  <dependency>
    <groupId>io.github.spannm</groupId>
    <artifactId>ucanaccess</artifactId>
    <version>5.1.0</version>
  </dependency>

(artifactId和版本已更改,其余兼容)。

© www.soinside.com 2019 - 2024. All rights reserved.