繁体   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