爲什麼你認爲這個函數總是讓我空? 使用另一個具有相同代碼結構的登錄程序,它工作得非常好。 我DBURL爲jdbc:mysql的://本地主機:8889 /數據庫java.sql.SQLException:訪問被拒絕用戶'root'@'localhost'(使用密碼:YES)
public String retrieveUserPassword(String userName, String password) {
String query = "SELECT UserPassword FROM Access where UserName='"+userName+"'";
String dbresult=null; //this might be the problem, but I must define it
try {
Class.forName("com.mysql.jdbc.Driver");
}catch (ClassNotFoundException ex1) {
System.out.println("Driver could not be loaded: " + ex1);
Logger.getLogger(DatabaseModel.class.getName()).log(Level.SEVERE, null, ex1);
}
try {
//These are private variables declared at the top of the class
//and used by various functions
con = DriverManager.getConnection(DatabaseURL, userName, password);
st = con.createStatement();
rs = st.executeQuery(query);
if(rs.next()){
dbresult= rs.getString(3);
}
}catch (SQLException e) {
e.printStackTrace();
}
return dbresult;
}
Access表由三列: 用戶名,用戶名,userPassword的
下面的命令並不標題回答這個問題? –
調試並檢查查詢是否實際返回任何值。即「if(rs.next())'爲真。 –
@達維達。一個。正如我所說的,代碼是正確的,因爲我在另一個程序中嘗試複製和粘貼,而我沒有這個問題。數據庫始終授予對root用戶的訪問權限。 – QGA