有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java基于mysql条件在javafx应用中打开不同的GUI

我正在编写一个模拟安卓设备商店的javafx应用程序

如果用户输入了正确的密码和用户名,我希望这个特定的方法根据mysql数据库表中"IsAdmin"列的内容打开一个不同的窗口

"IsAdmin"列的内容是布尔值

以下是该方法的代码:

@FXML
private Button LoginButton;

@FXML
private TextField UserField;

@FXML
private PasswordField PassField;

@FXML
private Label ManagerLoginLabel;

@FXML
private Label StatusLabel;

@FXML
private Button RegisterButton;

@FXML
public void Login() {
    LoginButton.setOnAction(new EventHandler<ActionEvent>() {
        @Override
        public void handle(ActionEvent event) {
            PreparedStatement ps;
            try {
                Connection connection = DbUtil.getInstance().getConnection();
                ps = connection.prepareStatement("SELECT `Username`, `Password`, `IsAdmin` FROM `安卓shop`.`userdatabase` WHERE `username` = ? AND `password` = ?");
                ps.setString(1, UserField.getText());
                ps.setString(2, String.valueOf(PassField.getText()));
                ResultSet result = ps.executeQuery();
                if (result.next() ****) {
                    StatusLabel.setText("Welcome, shop manager!");
                    try {
                        Parent parent;
                        parent = FXMLLoader.load(getClass().getClassLoader().getResource("view/ManagerPane.fxml"));
                        Stage stage = new Stage();
                        stage.setTitle("ManagerPane");
                        stage.setScene(new Scene(parent, 450, 450));
                        stage.show();
                        ((Node)(event.getSource())).getScene().getWindow().hide();
                    }
                        catch (IOException e) {
                            e.printStackTrace();
                             } else if (result.next() ****){
                            Parent parent;
                            StatusLabel.setText("Welcome, honored customer!");
                            parent = FXMLLoader.load(getClass().getClassLoader().getResource("view/ClientPane.fxml"));
                            Stage stage = new Stage();
                            stage.setTitle("ClientPane");
                            stage.setScene(new Scene(parent, 450, 450));
                            stage.show();
                            ((Node)(event.getSource())).getScene().getWindow().hide();

                        }
                     else {
                        StatusLabel.setText("Wrong Password/Username, please try again");
                    }
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        });
    }
}

考虑到"IsAdmin"字段,我不知道该如何编写正确的条件,而且我无法在网上找到任何内容

我在方法中用"****"标记了我想要放置这些条件的空间

这些情况应该是什么样子?还是有更好的方法来实现这个结果

我将非常感谢任何关于如何改进我的代码的答案或提示

谢谢你抽出时间


共 (0) 个答案