我正在写的JavaFX应用程序,模拟的Android设备店。开放不同的GUI基于MySQL的条件
如果用户将在正确的用户名和密码,我想这个特定的方法来打开一个基于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 `androidshop`.`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"
领域,我没能在网上找到任何东西。
我标志着法空间,我希望把这些条件与"****"
。
这些条件应该看怎么样?还是有更好的方法来达到这个结果?
我将非常感谢任何答案或提示如何提高我的代码。
谢谢你的时间。
'status ==“admin”'[will not work。](https://stackoverflow.com/questions/513832/how-do-i-compare-strings-in-java) – VGR