Записывание информацию через TableView в базу данных PostgreSql

У меня есть вот такой tableview введите сюда описание изображения Который я заполняю из БД вот так вот

 rs = table.createStatement().executeQuery(PostSQL);
        while (rs.next()){
            int first = rs.getInt("code");
            String second = rs.getString("category");
            String second1 = rs.getString("additional_score");
            String third = rs.getString("name_score");
            int fouth = rs.getInt("saldo_in_som");
            int fifth = rs.getInt("debet");
            int sixth = rs.getInt("kredit");
            int seventh = rs.getInt("saldo_out_som");
            int eight = rs.getInt("defference");
            int nine = rs.getInt("saldo_in_usd");
            int ten = rs.getInt("debit_usd");
            int eleven = rs.getInt("credit_usd");
            int twelve = rs.getInt("saldo_out_usd");
            int thirteen = rs.getInt("difference_usd");
            // MainTableInf считайте тотже самый класс что и ProgrammData просто я путаться начал и создал отдельный класс
            ConsolidInfin ConsolidInfTable = new ConsolidInfin(first, second, second1, third, fouth, fifth, sixth, seventh, eight,
                    nine, ten, eleven, twelve, thirteen);

            ConsolidInfTable.getCode();
            ConsolidInfTable.getCategory();
            ConsolidInfTable.getAdittional_score();
            ConsolidInfTable.getName_of_score();
            ConsolidInfTable.getSaldo_in_som();
            ConsolidInfTable.getDebit();
            ConsolidInfTable.getKredit();
            ConsolidInfTable.getSaldo_out_som();
            ConsolidInfTable.getDifference();
            ConsolidInfTable.getSaldo_in_usd();
            ConsolidInfTable.getDebit_usd();
            ConsolidInfTable.getKredit_usd();
            ConsolidInfTable.getSaldo_out_usd();
            ConsolidInfTable.getDifference_usd();
            data.add(ConsolidInfTable);

            Code.setCellValueFactory( new PropertyValueFactory<ConsolidInfin, Integer>("code"));

            Category.setCellValueFactory(new PropertyValueFactory<ConsolidInfin, String>("category"));
            Category.setCellFactory(TextFieldTableCell.forTableColumn());

            Additional_Score.setCellValueFactory( new PropertyValueFactory<ConsolidInfin, String>("adittional_score"));
            Additional_Score.setCellFactory(TextFieldTableCell.forTableColumn());

            Score.setCellValueFactory( new PropertyValueFactory<ConsolidInfin, String>("name_of_score"));
            Score.setCellFactory(TextFieldTableCell.forTableColumn());
            Score.setOnEditCommit(
                    new EventHandler<TableColumn.CellEditEvent<ConsolidInfin, String>>() {
                        @Override
                        public void handle(TableColumn.CellEditEvent<ConsolidInfin, String> consolidInfinStringCellEditEvent) {
                            DatabaseHandler db = new DatabaseHandler();
                            (consolidInfinStringCellEditEvent.getTableView().getItems().get
                                    (consolidInfinStringCellEditEvent.getTablePosition().getRow()))
                                    .setName_of_score(consolidInfinStringCellEditEvent.getNewValue());
                            String a = String.valueOf(consolidInfinStringCellEditEvent.getNewValue());
                            ConsolidInfin c  = new ConsolidInfin(a);
                            db.consolidUpdateScore(c);
                            buildTable ();
                        }
                    }
            );

            SaldoInSom.setCellValueFactory( new PropertyValueFactory<ConsolidInfin, Integer>("saldo_in_som"));
            DebitSom.setCellValueFactory( new PropertyValueFactory<ConsolidInfin, Integer>("debit"));
            CreditSom.setCellValueFactory( new PropertyValueFactory<ConsolidInfin, Integer>("kredit"));
            SaldoOutSom.setCellValueFactory( new PropertyValueFactory<ConsolidInfin, Integer>("saldo_out_som"));
            Difference.setCellValueFactory( new PropertyValueFactory<ConsolidInfin, Integer>("difference"));
            SaldoInUsd.setCellValueFactory( new PropertyValueFactory<ConsolidInfin, Integer>("saldo_in_usd"));
            DebitUsd.setCellValueFactory( new PropertyValueFactory<ConsolidInfin, Integer>("debit_usd"));
            CreditUsd.setCellValueFactory( new PropertyValueFactory<ConsolidInfin, Integer>("kredit_usd"));
            SaldoOutUsd.setCellValueFactory( new PropertyValueFactory<ConsolidInfin, Integer>("saldo_out_usd"));
            DifferenceUsd.setCellValueFactory( new PropertyValueFactory<ConsolidInfin, Integer>("difference_usd"));
        }
        ConsolidatedTable.setItems(data);
        ConsolidatedTable.setEditable(true);
        ConsolidatedTable.getSelectionModel().setSelectionMode(SelectionMode.MULTIPLE);
        rs.close();

Есть метод который позволяет в ячейку что то записывать, так вот моя проблема в том, что я никак не могу присвоить записанное к определенной строке, то бишь он записывает информацию во весь столбик Через вот этот метод:

public void handle(TableColumn.CellEditEvent<ConsolidInfin, String> consolidInfinStringCellEditEvent) {
                            DatabaseHandler db = new DatabaseHandler();
                            (consolidInfinStringCellEditEvent.getTableView().getItems().get
                                    (consolidInfinStringCellEditEvent.getTablePosition().getRow()))
                                    .setName_of_score(consolidInfinStringCellEditEvent.getNewValue());
                            String a = String.valueOf(consolidInfinStringCellEditEvent.getNewValue());
                            ConsolidInfin c  = new ConsolidInfin(a);
                            db.consolidUpdateScore(c);
                            buildTable ();
                        }

Ответы (1 шт):

Автор решения: Владислав Цой

Все оказалось гораздо проще оказывается можно еще и возвращать имя строки:

public void handle(TableColumn.CellEditEvent<ConsolidInfin, String> consolidInfinStringCellEditEvent) {
                            DatabaseHandler db = new DatabaseHandler();
                            // вот это шляпа считывает данные из редактируемой ячейки
                            (consolidInfinStringCellEditEvent.getTableView().getItems().get
                                    (consolidInfinStringCellEditEvent.getTablePosition().getRow()))
                                    .setName_of_score(consolidInfinStringCellEditEvent.getNewValue());
                            String a = String.valueOf(consolidInfinStringCellEditEvent.getNewValue());
                            ConsolidInfin c  = new ConsolidInfin(a);
                            c.setCode((consolidInfinStringCellEditEvent.getTableView().getItems().get
                                    (consolidInfinStringCellEditEvent.getTablePosition().getRow())).getCode());
                            db.consolidUpdateScore(c);
                            buildTable ();
                        }
                    }
→ Ссылка