-1
請老兄,我一直在這一整天試圖讓我的managerCorner GUI基於這個認證來執行。我使用了正確的值,即數據庫中的值來檢查managerLogin()方法是否授予我對managerCorner GUI界面的訪問權限,但它沒有奏效。有一個LoginInterface類具有處理用戶認證的表單。我試圖用正確的值登錄,但是如果(rset.next())...沒有調用managerCorner GUI類,則沒有異常或錯誤被標記掉!這是爲什麼?這個驗證碼有什麼錯誤?
public void managerLogin(int id, String usn, String pwd) {
try {
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
}
catch(Exception e) {
JOptionPane.showMessageDialog(null, e.getMessage());
}
java.sql.Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/ phoneShopSystem","aknessy", dbLogin.db());
String query = "SELECT managerID, managerUsername, managerPwd"
+ "FROM `manager` WHERE managerID = ? AND managerUsername = ? AND managerPwd = ?";
java.sql.PreparedStatement pst= con.prepareStatement(query,ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
int i = rset.getInt(1);
String u = rset.getString(2);
String p = rset.getString(3);
rset = pst.executeQuery();
if(rset.next()){
if((i == id) && (u.equals(usn)) && (p.equals(pwd))){
new managerCorner();
managerCorner.setDefaultLookAndFeelDecorated(true);
}else{
JOptionPane.showMessageDialog(null, "The User: "+ usn +" With ID "+ id + " \n"
+ "Does Not Exist!", "\nLogin Failed!", JOptionPane.OK_OPTION);
}
rset.close();
con.close();
}catch(SQLException sql){
JOptionPane.showMessageDialog(null, sql.getMessage(),"SQL ERROR!!!",JOptionPane.OK_OPTION);
}
}}
請格式化您的代碼。這段代碼會讓下一位給你一個性能評估的程序員看起來很雜亂。 – tbodt
你在哪裏設置查詢語句參數。 –