Index: 13  应为12 或者size 14  ???

解决方案 »

  1.   

    Index: 13  应为12 或者size 14  ???
    =========================================
    我应该怎么改呢?
      

  2.   

    //添加到pr_familymember表
        String sql3="insert into pr_familymember(fanilymember_name,familymember_relation,familymember_age,familymember_job,person_id) values(";
        if(!personactionform.getFanilymember_name().equals(null))
        {
        family.add(personactionform.getFanilymember_name());//家庭成员姓名
        family.add(personactionform.getFamilymember_relation());  //和本人关系
        family.add(String.valueOf(personactionform.getFamilymember_age())); //家庭成员年龄
        family.add(personactionform.getFamilymember_job());    //家庭成员工作
        for(int i=0;i<family.size();i++)
        {
        sqlfamily+="'"+family.get(i)+"',";
        }
        sql3=sql3+sqlfamily+(String)person.get(0)+")";
        sql.add(sql3);
        }
       sql3="insert into pr_familymember(fanilymember_name,familymember_relation,familymember_age,familymember_job,person_id) values(";
       if(!personactionform.getFanilymember_name1().equals(null))
        {
        family1.add(personactionform.getFanilymember_name1());//家庭成员姓名1
        family1.add(personactionform.getFamilymember_relation1());  //和本人关系1
        family1.add(String.valueOf(personactionform.getFamilymember_age1())); //家庭成员年龄1
        family1.add(personactionform.getFamilymember_job1());    //家庭成员工作1
        for(int i=0;i<family1.size();i++)
        {
        sqlfamily1+="'"+family1.get(i)+"',";
        }
        sql3=sql3+sqlfamily1+(String)person.get(0)+")";
        sql.add(sql3);
        }
        sql3="insert into pr_familymember(fanilymember_name,familymember_relation,familymember_age,familymember_job,person_id) values(";
        if(!personactionform.getFanilymember_name2().equals(null))
        {
        family2.add(personactionform.getFanilymember_name2());//家庭成员姓名2
        family2.add(personactionform.getFamilymember_relation2());  //和本人关系2
        family2.add(String.valueOf(personactionform.getFamilymember_age2())); //家庭成员年龄2
        family2.add(personactionform.getFamilymember_job2());    //家庭成员工作2
        for(int i=0;i<family2.size();i++)
        {
        sqlfamily2+="'"+family2.get(i)+"',";
        }
        sql3=sql3+sqlfamily2+(String)person.get(0)+")";
        sql.add(sql3);
        }   //添加到pr_skill表
        String sql4="insert into pr_skill(skill_name,skill_level,skill_relevant_certificate,person_id) values(";
        if(!personactionform.getSkill_name().equals(null))
        {
        skill.add(personactionform.getSkill_name());//技能名称
        skill.add(personactionform.getSkill_level());  //技能水平
        skill.add(personactionform.getSkill_relevant_certificate());//技能相关证明
        for(int i=0; i<skill.size(); i++){
        sqlskill+="'"+skill.get(i)+"',";
        }
        sql4=sql4+sqlskill+(String)person.get(0)+")";
        sql.add(sql4);
        }
       sql4="insert into pr_skill(skill_name,skill_level,skill_relevant_certificate,person_id) values(";
       if(!personactionform.getSkill_name1().equals(null))
       {
       skill1.add(personactionform.getSkill_name1());  //技能名称1
       skill1.add(personactionform.getSkill_level1()); //技能水平1
       skill1.add(personactionform.getSkill_relevant_certificate1());//技能相关证明1
       for(int i=0; i<skill1.size(); i++){
       sqlskill1+="'"+skill1.get(i)+"',";
       }
       sql4=sql4+sqlskill1+(String)person.get(0)+")";
       sql.add(sql4);
       }
       sql4="insert into pr_skill(skill_name,skill_level,skill_relevant_certificate,person_id) values(";
      if(!personactionform.getSkill_name2().equals(null))
      {
      skill2.add(personactionform.getSkill_name2());//技能名称2
      skill2.add(personactionform.getSkill_level2());//技能水平2
      skill2.add(personactionform.getSkill_relevant_certificate2());//技能相关证明2
      for(int i=0; i<skill2.size(); i++){
      sqlskill2+="'"+skill2.get(i)+"',";
      }
      sql4=sql4+sqlskill2+(String)person.get(0)+")";
      sql.add(sql4);
      }  //添加到pr_workexperience表
      String sql5="insert into pr_workexperience(work_from,work_to,name_of_company,position,lastsalary,reason_of_resignation,person_id) values(";
      if(!personactionform.getWork_from().equals(null))
      {
      experience.add(personactionform.getWork_from()); //工作开始日期
      experience.add(personactionform.getWork_to());//工作结束日期
      experience.add(personactionform.getName_of_company()); //单位名称
      experience.add(personactionform.getPosition()); //职位
      experience.add(personactionform.getLastsalary()); //薪水
      experience.add(personactionform.getReason_of_resignation());  //离职原因
      for(int i=0;i<experience.size();i++){
        sqlexperience="'"+experience.get(i)+"',";
      }
      sql5=sql5+sqlexperience+(String)person.get(0)+")";
      sql.add(sql5);
      }
      sql5="insert into pr_workexperience(work_from,work_to,name_of_company,position,lastsalary,reason_of_resignation,person_id) values(";
      if(!personactionform.getWork_from1().equals(null))
      {
      experience1.add(personactionform.getWork_from1()); //工作开始日期1
      experience1.add(personactionform.getWork_to1());//工作结束日期1
      experience1.add(personactionform.getName_of_company1()); //单位名称1
      experience1.add(personactionform.getPosition1()); //职位1
      experience1.add(personactionform.getLastsalary1()); //薪水1
      experience1.add(personactionform.getReason_of_resignation1());  //离职原因1
      for(int i=0;i<experience1.size();i++){
        sqlexperience1="'"+experience1.get(i)+"',";
      }
      sql5=sql5+sqlexperience1+(String)person.get(0)+")";
      sql.add(sql5);
      }
      sql5="insert into pr_workexperience(work_from,work_to,name_of_company,position,lastsalary,reason_of_resignation,person_id) values(";
      if(!personactionform.getWork_from2().equals(null))
      {
      experience2.add(personactionform.getWork_from2()); //工作开始日期2
      experience2.add(personactionform.getWork_to2());//工作结束日期2
      experience2.add(personactionform.getName_of_company2()); //单位名称2
      experience2.add(personactionform.getPosition2()); //职位2
      experience2.add(personactionform.getLastsalary2()); //薪水2
      experience2.add(personactionform.getReason_of_resignation2());  //离职原因2
      for(int i=0;i<experience2.size();i++){
        sqlexperience="'"+experience2.get(i)+"',";
      }
      sql5=sql5+sqlexperience2+(String)person.get(0)+")";
      sql.add(sql5);
      } public static void main(String[] args){
      PersonActionForm personactionform=new PersonActionForm();
      PersonManagerImpl personmanagerimpl=new PersonManagerImpl();
      boolean s;
      System.out.println("111");
      try {
       s=personmanagerimpl.newPerson(personactionform);
        System.out.println("222");
       System.out.println(s);
      }
      catch (Exception ex) {
        System.out.println(ex.toString());
      }
      //System.out.println(s);
    }
    }
      

  3.   

    to 楼主 
    就只看到sql.add()了,你把执行sql的地方给出来撒
      

  4.   

    TO 楼主:无法在我的机器上运行,所以也只是大至看了一下,ArrayList.add()不会出IndexOutOfBoundsException(因你没有指定按index来add)应该是你的get()的时候出的问题,你可以一段一段的来调试,看是哪一段抛出的这个IndexOutOfBoundsException