簡體   English   中英

登錄取決於用戶角色

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM