# SQL Ergebnis in Integer Wert abspeichern



## Zakon (5. Jan 2021)

Hallo 

In Zeile 5 möchte ich das Ergebniss in ein Integer Wert abspeichern um es in Zeile 9 als ID einzufügen. 
So bekomme ich zur Zeit noch eine fehlermeldung. Ist es überhaupt möglich so wie ich das vorhabe?

[CODE lang="java" highlight="5"]@FXML
    public void bearbeitung(ActionEvent event) throws SQLException {
        Connection conn = DBConnection.getInstance().getCon();
        String auswahlName = boxName.getValue();
        ResultSet ID = conn.createStatement().executeQuery("SLECT Mitarbeiter.ID FROM Mitarbeiter M WHERE M.Vorname LIKE '%"+auswahlName+"%'");
        try{
            dataall=FXCollections.observableArrayList();
            ResultSet update = conn.createStatement().executeQuery("UPDATE Mitarbeiter_Produkt MP SET MP.Produkt_ID = "+wert1+" WEHRE MP.Mitarbeiter_ID="+ID+"");
            ResultSet rs = conn.createStatement().executeQuery("SELECT * FROM FRIMEN F JOIN Mitarbeiter M ON F.ID=M.Firmen_ID "+
                    "JOIN Mitarbeiter_Produkt MP ON M.ID=MP.Mitarbeiter_ID JOIN Produkte P ON MP.Produkt_ID=P.ID WHERE M.Vorname LIKE '%"+auswahlName+"%'");
            while (rs.next()){
                dataall.add(new allDetails(rs.getInt(1),rs.getString(2),rs.getInt(3),rs.getString(4),
                        rs.getString(5),rs.getInt(6),rs.getInt(7),rs.getString(8)));
            }
            rs.close();

            if (conn != null && conn.isClosed()) {
                System.out.println("Connected");
            } else {
                System.out.println("Connection lost");
            }
        }catch(Exception e){
            System.out.println(e.fillInStackTrace());
        }



        columnID2.setCellValueFactory(new PropertyValueFactory<>("ID2"));
        columnFirmenName2.setCellValueFactory(new PropertyValueFactory<>("FirmenName2"));

        columnMitarbeiter_ID2.setCellValueFactory(new PropertyValueFactory<>("Mitarbeiter_ID2"));
        columnVorname2.setCellValueFactory(new PropertyValueFactory<>("Vorname2"));
        columnNachname2.setCellValueFactory(new PropertyValueFactory<>("Nachname2"));
        columnFirmen_ID2.setCellValueFactory(new PropertyValueFactory<>("Firmen_ID2"));

        columnProdukt_ID2.setCellValueFactory(new PropertyValueFactory<>("Produkt_ID2"));
        columnProdukt2.setCellValueFactory(new PropertyValueFactory<>("Produkt2"));

        tableall.setItems(null);
        tableall.setItems(dataall);
    }[/CODE]

Danke im Vorraus für eure Hilfe


----------



## kneitzel (5. Jan 2021)

Du hast doch den Code, wie man ein ResultSet ausliest, direkt in dem Code mit drin. Da es nur ein Wert geben soll, reicht statt der while Schleife eine if Abfrage: `if (ID.next())`. Und dann bekommst du die Id per ID.getInt("ID");

*ABER: SQL Queries werden NICHT so über Strings zusammen gesetzt. Gleich von Anfang an damit aufhören! Dafür gibt es prepared statements! Das einmal nachlesen und von Anfang an verwenden! Parameter sind zu nutzen!*

Und dann kannst Du Schreibfehler korrigieren ("WEHRE").


----------



## Dukel (5. Jan 2021)

Zusätzlich kannst du dir angewöhnen die Fehlermeldung zu posten, wenn du diese schon bekommst.


----------



## mrBrown (5. Jan 2021)

"SLECT" ist auch eher kein gültiges SQL...


----------

