我不知道我的示例代码有什么问题,我已遵循多个 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.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
我来到这里是为了升级
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和版本已更改,其余兼容)。