Truncated incorrect DOUBLE value: 'd'的解決方法(jdbc)
今天寫jdbc中dao的增刪改查時遇到了一個問題,花費了好長時間,不過還好,有我峰哥出頭,問題解決了,在這做個分享,對峰哥表達一下感激之情
網上搜索到的對“Truncated incorrect DOUBLE value”的解決方法主要是這兩種:
①修改了多個列的值而各列之間用逗號連接而不要用and
錯誤寫法示例:
String sql = "update user set username=? and password=? where id=?";
正確寫法示例:
String sql = "update user set username=? , password=? where id=?";
②SQL語句在拼接字符串時使用函數CONCAT()而不要用“+”
但我只修改一列而且是直接傳參的啊= =。一開始我嘗試通過preparedstatement設置動態參數,即
String sql="UPDATE arrange SET askForLeave=‘是‘ WHERE employeeNum=? and arrangeDate=?";
這次不報Truncated incorrect DOUBLE value了,改報語法錯誤了= =
於是把and替換成or,結果正確;把參數改成同格式的常量,結果也正確;去掉一個條件,結果還是正確;說明錯誤出在兩個參數上
最後我的解決方法是把
String sql="UPDATE arrange SET askForLeave=‘是‘ WHERE employeeNum=“+employeeNum+” and arrangeDate="+leaveDate;
改成了
String sql="UPDATE arrange SET askForLeave=‘是‘ WHERE employeeNum=‘"+employeeNum+"‘ and arrangeDate=‘"+leaveDate+"‘"
在字符串變量前後又加了單引號
希望以後別再被掉這坑了。。。。。。很難受
Truncated incorrect DOUBLE value: 'd'的解決方法(jdbc)