2016-05-17 7 views
0

例外は次のとおりです。列インデックスが範囲外です:16、列数:15。入れ子にされた例外はorg.postgresql.util.PSQLExceptionです:列インデックスが範囲外です:16、列数:15.このクエリを使用してフォームを送信中です。親切にお勧めします。あなたの助けは相当なものになるでしょう。もし列に16の値を挿入しようとしているのに対し、spring-mvcを使用してフォームを送信するときにdbに挿入されない

@Override公共INT insertNewApplication(TokenApplicantDetailsのTPD) {

String sql = "INSERT INTO token_applicant_details" 
      + "(application_no,applicant_name, applsex, " 
      + "designation, date_of_superannuation, " 
      + "phone_no, mobile_no, " 
      + "office_type_code,ou_code,token_manufacturer_code,token_user_id,token_password, " 
      +"certificate_no,certificate_issue_date,certificate_expiry_date, " 
      +"fixed_ip_address,ref_no,form_type,original_application_receiving_date, " 
      +"scanned_application_receiving_date,residential_address,staff_status, " 
      +"email_id, enrollment_no, dispatch_no,fixed_ip_active, " 
      +"refId,Deacivated_on) VALUES (null,?, ?, ?,to_date(?,'DD/MM/YYYY'), ?, ?, ?, ?, ?, ?, ?,null,null,null,null,null,?,null,null,?,?,?,null,null,null,null,null)"; 

    System.out.println("not inserted"); 
    return jdbcTemplate.update(sql,new Object[]{tpd.getApplication_no(),tpd.getApplicant_name(), tpd.getApplsex(),tpd.getDesignation(),tpd.getDate_of_superannuation(),tpd.getPhone_no(),tpd.getMobile_no(), 
      tpd.getOffice_type_code(),tpd.getOu_code(),tpd.getToken_manufacturer_code(),tpd.getToken_user_id(),tpd.getToken_password(),tpd.getCertificate_no(),tpd.getCertificate_issue_date(),tpd.getCertificate_expiry_date(), 
      tpd.getFixed_ip_address(),tpd.getRef_no(),tpd.getForm_type(),tpd.getOriginal_application_recieving_date(), 
      tpd.getScanned_application_recieving_date(),tpd.getResidential_address(),tpd.getStaff_status(), 
      tpd.getEmail_id(),tpd.getEnrollment_no(),tpd.getDispatch_no(),tpd.getFixed_ip_address(),tpd.getRefId(),tpd.getDeactivated_on(),}); 


} 
+0

sqlパラメータと入力パラメータのパラメータ数が異なります。 – Blank

+0

?それを修正する方法をお勧めしますか?詳細を教えてください。 –

答えて

0

データベーステーブルは、15個の列を有します。私の場合は、クエリの書式設定(たとえば、行ごとに1つの値)を整理して、どの値が一致していないかを確認することができます。

代わりにNamedParameterJdbcTemplateを使用する方が良いでしょう。これにより、列の値を明示的に一致させることができます。

関連する問題