解决方案 »

  1.   

    query.setParameter(i + "" , params[i+1]);
    参数赋值索引从1开始。
      

  2.   

    看错了,弄反了:query.setParameter(i+1 + "" , params[i]);
      

  3.   

    query.setParameter(i + "" , params[i]);
    不是按照下标赋值的吗?为什么要讲i转为字符串?
    是有特殊要求吗?如果没有的话 就用下面的试试
    query.setParameter(i  , params[i]);
      

  4.   

    记错了,JDBC的是从1开始郁闷
    应该就是楼上说的,你用问号占位,必须是数字,不能是字符串。用:占位的话可以用字符串直接写字段名~