J'écris une application javafx qui simule la boutique de l'appareil Android.Ouverture de l'interface graphique différente dans l'application javafx basée sur la condition mysql
Je voudrais cette méthode spécifique pour ouvrir une fenêtre différente basée sur le contenu de la colonne "IsAdmin"
dans la table de base de données mysql si l'utilisateur met le mot de passe et le nom d'utilisateur corrects.
Le contenu de la colonne "IsAdmin"
est booléen.
Voici le code de la méthode:
@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();
}
}
});
}
}
Je ne savais pas comment devrais-je écrire une condition correcte compte tenu de champ "IsAdmin"
et je n'ai pas pu trouver quoi que ce soit en ligne.
J'ai marqué l'espace dans la méthode où je voulais mettre ces conditions avec "****"
.
À quoi ces conditions ressemblent-elles? Ou y a-t-il une meilleure méthode pour réaliser ce résultat?
Je serai très reconnaissant pour toute réponse ou des conseils sur la façon d'améliorer mon code.
Nous vous remercions de votre temps.
'status ==" admin "' [ne fonctionne pas.] (Https://stackoverflow.com/questions/513832/how-do-i-compare-strings-in-java) – VGR