[英]Login which depend on user role
我試圖創建一個程序來顯示或隱藏按鈕,具體取決於用戶的角色,取決於用戶是管理員還是其他人。 因此,在這種情況下,我將字符串從“登錄”框架傳遞到“菜單”框架,如果字符串等於我的要求,它將在“菜單”框架上顯示按鈕(如果不是),然后隱藏按鈕。 現在這正在處理字符串。 但是,除了從數據庫中提取角色外,該怎么做? 我在數據庫中有該字段,但我不知道該怎么做。 -我在數據庫中的字段是用戶名,密碼和角色。
謝謝!
登錄框
JButton btnLogin = new JButton("Login !");
btnLogin.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
try {
String username = textUsername.getText();
String password = passwordField.getText();
String S = "Administrator";
String query = "SELECT * FROM ADMINISTRATION where username=? and password=?;";
PreparedStatement stmt = connection.prepareStatement(query);
stmt.setString(1, username);
stmt.setString(2, password);
ResultSet set=stmt.executeQuery();
if (set.next()) {
Menu menu = new Menu();
menu.setVisible(true);
setVisible(false);
menu.Proba(S);
stmt.close();
connection.close();
}
else {
JOptionPane.showMessageDialog(contentPane, "Pogrešno korisničko ime ili lozinka !", "Greška !", JOptionPane.ERROR_MESSAGE);
}
} catch (Exception e2) {
// TODO: handle exception
}
}
});
菜單框
public void Proba(String S) {
if (S.equals("Administrator")) {
btnOption.setVisible(true);
}
else {
btnOption.setVisible(false);
}
}
好的,我假設這是一個學術項目。
因此,您有一個ResultSet並且正在對其進行迭代,當您調用“ next”方法時,將移至下一行(在本例中為第一行)。
現在您有了一行,您需要調用一個從列中檢索String值的方法(在這種情況下為角色),請查看文檔:
https://docs.oracle.com/javase/7/docs/api/java/sql/ResultSet.html
您有一個需要列名的“ getString”方法,並將從該列返回字符串valuo。
例如:
if (set.next()) {
String role = set.getString("role");
Menu menu = new Menu();
menu.setVisible(true);
setVisible(false);
menu.Proba(role);
stmt.close();
connection.close();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.