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) 个答案