错误:
捕获到异常:java.sql.SQLException:不正确的整数值:'[Ljava.lang.String; @ 26fd19c6'代表第1行的'dedId'列无法连接数据库
程序:
public void updateDeduction(int empId, String[] dedId, String dedName, String dedDate, String dedAmount) throws SQLException{
stmt = conn.createStatement();
String updateString="INSERT INTO deductions (empId,dedId,dedName,dedDate,dedAmount) VALUES (";
updateString +="'"+empId+"', ";
updateString +="'"+dedId+"', ";
updateString +="'"+dedName+"', ";
updateString +="'"+dedAmount+"', ";
updateString +="CURDATE())" ;
stmt.executeUpdate(updateString);
return;
}
答案 0 :(得分:2)
参数dedid
是字符串的数组。执行时
updateString +="'"+dedId+"', ";
它被转换为字符串[Ljava.lang.String;@26fd19c6
。
您需要弄清楚要使用哪些数组元素。
正如其他人所评论的那样,通过连接用户提供的文本来构建语句是一种通过SQL Injection进行攻击的可靠方法。您应该使用PreparedStatement
代替占位符,即
INSERT INTO deductions (empId,dedId,dedName,dedDate,dedAmount) VALUES (?,?,?,?,?)