0
i have 11 checkbox’s each have an id equal to the database id and the user can select more than one checkbox how I am using java fx and scenebuilder inicalizei in my controller
private CheckBox[] checkBoxes;
public void initialize(URL url, ResourceBundle rb) {
    initTable();
    tb.getSelectionModel().selectedItemProperty().addListener(new ChangeListener() {
        @Override
        public void changed(ObservableValue observable, Object oldValue, Object newValue) {
            selecionada = (Requisicao) newValue;
        }
    });
  checkBoxes = new CheckBox[] {
  checkMonitor,
  checkTeclado,
  checkMouse,
  checkVGA,
  checkPlacaMae,
  checkHD,
  checkFonte,
  checkRam,
  checkCabos,
  checkGravador,
  checkBateria
    };  
}
here I take the id’s of the selected checkbox and save in a list and step as parameter for my DAO
public void xd(){
    List<Integer> pecasList = new ArrayList<>();
    for (int i = 0; i < checkBoxes.length; i++) {
        if (checkBoxes[i].isSelected()) {
            pecasList.add(i+1);
        }
    }
    Alerts alerts = new Alerts();
    PecasDAO pecas = new PecasDAO();
    pecas.pegarPecasById(pecasList);
    for (Pecas checarQtd : pecas.pegarPecasById(pecasList)){
        if(checarQtd.getQtd_Pecas()>0){
            alerts.alertReqCadastrado();
        }else{
            alerts.alertSenhaDif();
        }
    }
}
my DAO
public List<Pecas> pegarPecasById(List<Integer> ids) {
    List<Pecas> pecaslist = new ArrayList<>();
if (ids.isEmpty()) {
    return new ArrayList<>(0);
} else {
    String sql = ids.stream().map(Object::toString).collect(Collectors.joining(",", "SELECT * FROM pecas WHERE id_pecas IN (", ")"));
    try {
        PreparedStatement stmt = con.prepareStatement(sql);
        ResultSet rs = stmt.executeQuery();
        while (rs.next()) {       
            Pecas pecas = new Pecas();
            pecas.setIdpecas(rs.getInt("id_pecas"));
            pecas.setNome(rs.getString("nome"));
            pecas.setQtd_Pecas(rs.getInt("qtdPecas"));
            pecaslist.add(pecas);
        }
        stmt.close();
        rs.close();
    } catch (SQLException ex) {
        Logger.getLogger(RequisicaoDAO.class.getName()).log(Level.SEVERE, null, ex);
        return null;
    }
    return pecaslist;
}   
}
in my DAO I make a query in the database and take the values of table parts which are: id/ part name/ available quantity
and then I go through this list in my controller:
pecas.pegarPecasById(pecasList);
for (Pecas checarQtd : pecas.pegarPecasById(pecasList)){
    if(checarQtd.getQtd_Pecas()>0){
        alerts.alertReqCadastrado();
    }else{
        alerts.alertSenhaDif();
    }
}
my difficulty is in this part because I have all the data with this list: ex if the user selects 3 checkbox’s I will make this query in the database according to the id and I will get the quantity of parts available
and then I want to do an if to do this check, if the user has marked a checkbox and this id does not have a quantity of parts > 0 I generate an Alert ( we have no stock ) and if you have i send this as parameter to a DAO to insert into another table all my difficulty is in how to structure that if the way it is if I select 5 check boxes and only one has more than q > 0 will appear 1 successful Alert, and 4 Alert’s failure.
I was thinking of creating 2 lists one to add the values that have no stock greater than 0 and another to the ones that have and then no if to check if you have values in those lists in if, but I don’t know if it’s possible.
mt thanks bro I ended up going through this option I had found a solution, but I will do novamento.
– Felipe costa