2017-03-07 5 views
0

In mysql Problem von javafx einfügen, ich bekomme immer ungültigen Wert, egal was ich tue. Ich versuche, einen inkrementierenden Wert zu haben, wenn auf eine Schaltfläche geklickt wird. Der erste Wert in der Datenbank ist Doc - 1 und ich möchte den nächsten Wert Doc - 2 und Doc - 3 in dieser Reihenfolge haben. Jede Hilfe wird besonders in der Abfrage geschätzt, da alles gut funktioniert.In MySQL von JavaFX einfügen

@FXML 
private void GenerateDocTag(ActionEvent event) throws SQLException { 

    txtTag.setText(String.valueOf(doctorTag())); 

} 


private Integer doctorTag() throws SQLException { 

    Connection connection = DBController.Connect(); 

    String query = "\n" + 
      "select DocTag from doctors where substring('Doc - 1', -1);"; 
    resultSet = connection.createStatement().executeQuery(query); 
    resultSet.first(); 
    int DOC_TAG = resultSet.getInt(1); 
    return DOC_TAG + 1; 
} 

Der Fehler, der oben aus ist ungültiger Wert für getInt() - 'Doc - 1'

+0

Zuerst überprüfen Sie Ihre 'substring-value',' System.out.println (resultSet.getString (1)) ', Ist Ausgabe-Wert Int-Typ? –

+0

Rufen Sie innerhalb des UI-Threads keinen Nicht-UI-Code auf. Dies führt zu nicht reagierenden Apps und unerwünschtem Verhalten. – aalmiray

Antwort

0

haben Sie die folgende Tabellenstruktur Unter der Annahme:

value 
------ 
Doc - 1 
Doc - 2 
Doc - 3 

Sie müssen den höchsten Wert erhalten für value Spalte und cast es in int wenn das, was Ihr resultSet erwartet, zB“

SELECT CAST(SUBSTRING(value, -1) AS UNSIGNED) AS VALUE 
FROM test1 ORDER BY value DESC LIMIT 1; 

Ein anderer Ansatz wäre, das Maximum value zu erhalten und substring in Java durchzuführen.