我试图将值插入表(inquiry)第一个值的类型是date,我得到一个sql错误sql state s1009。转换日期的正确方法是什么?我做错什么了?

String sqlStatement = "INSERT INTO inquiry (INQUIRY_DATE,INQUIRY_NOTE,INQUIRER_ID,PROGRAM_ID,CLASS_ID,CORPORATE_ID)\n"
                + "VALUES (?,?,?,?);";

        ps = con.prepareStatement(sqlStatement);
        java.sql.Date sDate = new java.sql.Date(inquiry.getInquiryDate().getTime());

        int parameterIndex = 1;
        ps.setDate(parameterIndex, sDate);
        ps.setString(parameterIndex++, inquiry.getInquiryNote());
        ps.setInt(parameterIndex++, inquiry.getInquirer().getInquirerID());
        ps.setInt(parameterIndex++, inquiry.getProgramID());
        ps.setInt(parameterIndex++, inquiry.getClassProgramID());
        ps.setInt(parameterIndex++, 1);

最佳答案

sqlStatement = "INSERT INTO inquiry (INQUIRY_DATE,INQUIRY_NOTE,INQUIRER_ID,PROGRAM_ID,CLASS_ID,CORPORATE_ID)\n"
                + "VALUES (?,?,?,?);";

参数化查询没有足够的?,您查询了6列,其中缺少2个?,应该使用VALUES (?,?,?,?,?,?);?来保留setxxx()列值的位置

10-08 01:10