Таким образом, проблема, с которой я столкнулся сейчас, заключается в том, что я могу обновить свою базу данных новыми пользователями, но она не отображает правильные данные для столбца роли, так как это из выборов в выпадающем списке, она отображает всю комбинациювыбор коробки вместо только выбранного.Проблема, как показано в ссылке ниже.https://imgur.com/a/XeDinn9
Метод AddUsers
public static void addUsers(String username, String password, String role, String staff_id) {
try {
Connection conn = DBConnection.getConnection();
String sql = "INSERT into Login(username, password, role, staff_id) VALUES(?,?,?,?)";
PreparedStatement ps = conn.prepareStatement(sql);
ps.setString(1, username);
ps.setString(2, password);
ps.setString(3, role);
ps.setString(4, staff_id);
ps.executeUpdate();
conn.close();
} catch (SQLException ex)
{
}
}
ObservableList для userRoleBox
ObservableList<String> userRoleList = FXCollections.observableArrayList("Admin", "Technician", "Finance", "Management", "Customer Services");
ИнициализацияcomboBox
@FXML
private void initialize()
{
userRoleBox.setValue("Technician");
userRoleBox.setItems(userRoleList);
}
Метод инициализации при нажатии кнопки подтверждения для добавления пользователей в базу данных
@FXML
public void ConfirmUsers(ActionEvent event) throws SQLException, ClassNotFoundException
{
if(usernametxtfld.getText().isEmpty() || passwordtxtfld.getText().isEmpty() || userRoleBox.getItems().isEmpty() || staffIDtxtfld.getText().isEmpty())
{
Alert errorAlert = new Alert(Alert.AlertType.ERROR);
errorAlert.setHeaderText("Please fill in all of the fields");
errorAlert.setContentText("Click OK and ensure you have entered information in all of the boxes.");
errorAlert.showAndWait();
}
else{
CreateUsersDAO.addUsers(usernametxtfld.getText(),passwordtxtfld.getText(),userRoleBox.getItems().toString(),staffIDtxtfld.getText());
clearFields();
Alert confirmation = new Alert(Alert.AlertType.INFORMATION);
confirmation.setHeaderText("New user has been added.");
confirmation.showAndWait();
}
}