我是使用 Java 和 MS Access 的初学者。
基本上,我需要传递用户名和密码(使用 MD5 加密)并将其与我的数据库表中的数据进行比较。如果找到,它应该返回一个布尔值 true。
我收到以下错误消息:
错误:java.sql.SQLException:[Microsoft][ODBC Microsoft Access Driver]一般错误无法打开注册表项临时(易失性)进程 0x3b0 线程 0xfd4 DBC 0x5a91fcc 的 Ace DSN
这是我检查密码的功能:
private boolean logChck(String username, String password)
{
String query;
boolean login = false;
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String filename = "D:/Sand/program/JavaNetbeans/AllCodesHere/TestingCode/src/TestingCode/HotMan2.accdb";
String database = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=";
database+= filename.trim() + ";DriverID=22;READONLY=true}";
connection = DriverManager.getConnection( database ,"","");
query = "SELECT (StfFirName, StfPassword) FROM Staff WHERE (StfFirName = ? AND StfPassword = ?)";
PreparedStatement ps = connection.prepareStatement(query);
ps.setString(1, username);
ps.setString(2, password);
ps.executeQuery();
ResultSet rs = ps.executeQuery();
String checkUser = rs.getString(1);
String checkPass = rs.getString(2);
if((checkUser.equals(username)) && (checkPass.equals(password)))
{
login = true;
}
else
{
login = false;
}
connection.close();
}
catch (Exception err) {
System.out.println("ERROR: " + err);
}
return login;
}