求大神 速度解决这个有关问题 ! mybatis 有关问题

求大神 速度解决这个问题 在线等!! mybatis 问题
<insert id="Studentc050_initExamShiti" parameterType="java.util.HashMap">
insert into dkkj_exam_user_shiti(chengjiid,shitiid,shititype,insDate,insUser) 
select t1.id,t2.shitiID,t3.shititypeid,now(),'#{ip}'
from ppf_exam_kaojuan_base t1 
join dkkj_exam_kaojuan_shiti_ts t2 
join dkkj_exam_shiti_hdr t3 on t1.sjid = t2.id and t2.shitiID = t3.shitiId 
where t1.id = #{id} and t2.shitiid not in (select shitiid from dkkj_exam_user_shiti where chengjiid = #{id}) and t2.shitiid in
        <foreach collection="stids" item="item"  open="(" separator="," close=")">
${item}
        </foreach>
</insert>
这是sql代码 
public void insertDaTi(int id, List<Studentc050DaanBean> dbs, String ip) {
Map<String, Object> map = new HashMap<String, Object>();
map.put("id", id);
map.put("ip", ip);
List list = new ArrayList();
for (int i = 0; i < dbs.size(); i++) {
list.add(dbs.get(i).getStid());
}
map.put("stids", list);
getSqlSessionTemplate().insert("Studentc050_initExamShiti", map);
// getSqlSessionTemplate().insert("Studentc050_initExamShitiDtl", map);

// 不理睬异常
}
这是传参数的。。。  运行起来报错 

SQL: insert into dkkj_exam_user_shiti(chengjiid,shitiid,shititype,insDate,insUser)    select t1.id,t2.shitiID,t3.shititypeid,now(),'?'   from ppf_exam_kaojuan_base t1    join dkkj_exam_kaojuan_shiti_ts t2    join dkkj_exam_shiti_hdr t3 on t1.sjid = t2.id and t2.shitiID = t3.shitiId    where t1.id = ? and t2.shitiid not in (select shitiid from dkkj_exam_user_shiti where chengjiid = ?) and t2.shitiid in          (      319          ,     326          ,     324          ,     325          ,     312          ,     316          ,     311          ,     318          ,     322          ,     321          ,     323          ,     317          ,     308          ,     320          ,     309          ,     314          )
### Cause: java.sql.SQLException: Parameter index out of range (3 > number of parameters, which is 2).

求解决 在线等  
------解决思路----------------------
 Parameter index out of range (3 > number of parameters, which is 2).--------参数下标越界(3比参数数量2大)
------解决思路----------------------
你sql里面有#{ip},#{id},#{id}三个,map.put()的时候只传了两个,它不会因为你之前put过#{id}而是别第三个id的