2017-03-07 61 views
0

插入從JavaFX的MySQL的問題,我不斷收到無效的值,無論我做什麼。我試圖在單擊按鈕時增加一個值。數據庫中的第一個值是Doc-1,我希望下一個值按照該順序成爲Doc-2和Doc-3。查詢中特別感謝任何幫助,因爲一切正常。插入在MySQL從JavaFX的

@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; 
} 

從上面的錯誤是getInt()無效值 - '文件 - 1'

+0

首先檢查你的'substring-value','System.out.println(resultSet.getString(1))',是否是輸出值int類型? –

+0

不要在UI線程內調用非UI代碼,這會導致應用程序無響應和不需要的行爲。 – aalmiray

回答

0

假設你有下面的表結構:

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

你需要得到的最高值對於value列和cast它變成int如果這就是你的resultSet所期望的,例如「

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

另一種方法是獲取Java中的最大值value並執行substring