Логин, который зависит от роли пользователя - PullRequest
0 голосов
/ 24 августа 2018

Я пытаюсь создать программу, которая будет отображать или скрывать кнопки в зависимости от роли пользователя, зависит от того, является ли пользователь администратором или кем-то еще.Таким образом, в этом случае я передаю строку из фрейма «Логин» в фрейм «Меню», и если строка соответствует моему требованию, она показывает кнопку, если нет, то скрывает кнопку в фрейме «Меню».Теперь это работает со строкой.Но как сделать то же самое, но вытащить роль из базы данных?У меня есть это поле в базе данных, но я не знаю, как именно это сделать.- Мои поля в базе данных: имя пользователя, пароль и роль.

Спасибо!

Рамка входа

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);
    }
}

1 Ответ

0 голосов
/ 24 августа 2018

Хорошо, я предполагаю, что это академический проект.

Итак, у вас есть ResultSet и вы перебираете его, когда вы вызываете метод "next", вы переходите к следующей (в данном случае к первой) строке.

Теперь у вас есть строка, вам нужно вызвать метод, который извлекает значение String из столбца (в данном случае роли), проверьте документацию:

https://docs.oracle.com/javase/7/docs/api/java/sql/ResultSet.html

У вас есть метод getString, которому нужно имя столбца, и он вернёт значение строки из этого столбца.

Примером может быть:

if (set.next()) {
    String role = set.getString("role");

    Menu menu = new Menu();
    menu.setVisible(true);
    setVisible(false);

    menu.Proba(role);

    stmt.close();
    connection.close();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...