我在數據庫中有三種用戶類型。 http://oi44.tinypic.com/2z8qflw.jpg多用戶登錄java(管理員,用戶,教師)
而且我的繼承人登錄表單 http://oi44.tinypic.com/20p5v04.jpg
當我選擇admin作爲用戶類型,請從數據庫的用戶名和密碼,管理員的形式顯示出來。但是,當我選擇教師和學生,並從數據庫中輸入用戶名&時,只有JOptionpane顯示哪個是無效的詳細信息。
繼承人我的登錄的JFrame代碼:
JButton btnLogin = new JButton("Login");
btnLogin.setFont(new Font("Book Antiqua", Font.PLAIN, 18));
btnLogin.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
String sql = "SELECT * FROM useRecords ";
try {
ps = conn.prepareStatement(sql);
rs=ps.executeQuery();
String user = usern.getText();
String pwd = new String (passw.getPassword());
String type =(String)typeUser.getSelectedItem();
while(rs.next()) {
String uname = rs.getString("username");
String pass = rs.getString("password");
if ((user.equals(uname)) && (pwd.equals(pass))) {
if (type.equals("Admin")) { // ... admin
dispose();
aCai aCai = new aCai();
aCai.setVisible(true);
aCai.setExtendedState(Frame.MAXIMIZED_BOTH);
} else if (type.equals("Teacher")) { // ... teacher
dispose();
tCai tCai = new tCai();
tCai.setVisible(true);
tCai.setExtendedState(Frame.MAXIMIZED_BOTH);
} else {
dispose();
sCai sCai = new sCai();
sCai.setVisible(true);
sCai.setExtendedState(Frame.MAXIMIZED_BOTH);
}
} else {
JOptionPane.showMessageDialog(null, "User name and password do"
+ " not match!","ALERT!",
JOptionPane.ERROR_MESSAGE);
break;
}
}
} catch(Exception e) {
JOptionPane.showMessageDialog(null, e);
} finally {
try{
rs.close();
ps.close();
} catch(Exception e) {
}
}
}
});
你的if否則層次結構是不正確的,檢查它 –
如果其他層次似乎很好 – Batty
這是一個危險的使用SQL的方式,因爲任何人都可以輕鬆地反編譯jar,獲得所需的信息,然後做一個'DROP TABLE'或'DROP DATABASE'在你的數據庫上,突然間每個用戶/表/數據庫都消失了。 – Vallentin