【问题标题】:"No suitable driver found" for UCanAccess connectionUCanAccess 连接的“未找到合适的驱动程序”
【发布时间】:2018-08-04 15:45:31
【问题描述】:

我不知道我的示例代码有什么问题,我已按照多个 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

【问题讨论】:

  • “没有给我错误” - 错误是什么?
  • 请看我的编辑
  • 您认为databaseLocation 的价值是什么?不是你想的那样。
  • “未找到合适的驱动程序” 会提示您在编译或运行程序时没有下载驱动程序 Jar 或未将其包含在类路径中跨度>
  • 可能重复 Manipulating an Access database from Java without ODBC - 因为它提供了有关如何将 Jars 包含到许多不同 IDE 中的详细说明

标签: java database ms-access jdbc ucanaccess


【解决方案1】:

java.sql.SQLException: 找不到适合 jdbc:ucanaccess:/file:/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

【讨论】:

  • "UCanAccess连接URL必须以jdbc:ucanaccess://开头" 这样的话根本找不到数据库,找不到的话只能找不到合适的驱动。
  • URL 将我带到与数据库所在位置完全相同的位置,我确定了这一点。它需要是一个可移植的项目,这就是为什么它总是在 .jar 中搜索它
猜你喜欢
  • 1970-01-01
  • 2023-04-08
  • 1970-01-01
  • 2012-01-20
  • 1970-01-01
  • 1970-01-01
  • 2012-04-04
  • 1970-01-01
  • 2017-08-26
相关资源
最近更新 更多