//employeeNum是数字字符串,arrangeDate是格式为yyyy-MM-DD的日期字符串
String sql="UPDATE arrange SET askForLeave='是' WHERE employeeNum='"+employeeNum+"' and arrangeDate='"+leaveDate+"'";
//String sql="UPDATE arrange SET askForLeave='是' WHERE employeeNum="+employeeNum+" and arrangeDate="+leaveDate;问题就在这句啦
int flag=0; conn=UserDAO.getConnection();
psmt=conn.prepareStatement(sql);
/*psmt.setString(1, employeeNum);
psmt.setString(2, leaveDate);*/
网上搜索到的对“Truncated incorrect DOUBLE value”的解决方法主要是这两种:
①修改了多个列的值而各列之间用逗号连接而不要用and
错误写法示例:update tablename set col1=value1 and col2=value2 where col3=value3;
正确写法示例:update tablename set col1=value1 ,col2=value2 where col3=value3;
②SQL语句在拼接字符串时使用函数CONCAT()而不要用“+”
但我只修改一列而且是直接传参的啊= =。一开始我尝试通过preparedstatement设置动态参数,即
String sql="UPDATE arrange SET askForLeave='是' WHERE employeeNum=? and arrangeDate=?";
在字符串变量前后又加了单引号