-1

错误:

捕获的异常:java.sql.SQLException:不正确的整数值:'[Ljava.lang.String;@26fd19c6' for column 'dedId' at row 1 无法连接数据库

程序

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

1 回答 1

2

参数dedid是一个字符串数组。当你执行

updateString +="'"+dedId+"', ";

它被转换为字符串[Ljava.lang.String;@26fd19c6

您需要弄清楚要使用哪些数组元素。

正如其他人所评论的那样,通过像这样连接用户提供的文本来构建语句是通过SQL 注入被黑客入侵的可靠方法。您应该使用PreparedStatement占位符,即

INSERT INTO deductions (empId,dedId,dedName,dedDate,dedAmount) VALUES (?,?,?,?,?)
于 2013-01-17T07:36:37.680 回答