Parameter index out of range (1 > number of parameters, which is 0).; 避坑

413 阅读1分钟

差不多学校的事情忙完了,该好好沉淀下来学东西

数据库查询报错! Parameter index out of range (1 > number of parameters, which is 0).;

代码如下:

  String sql = "select count(*) from user where 1 = 1 ";
    StringBuilder sb = new StringBuilder(sql);
    Set<String> keySet = condition.keySet();
    List<Object> parmas = new ArrayList<Object>();
    for (String key : keySet) {
        if("currentPage".equals(key) || "rows".equals(key)) {
            continue;
        }
        String value = condition.get(key)[0];
        if(value !=null && !"".equals(value)) {
            sb.append(" and "+key+" like ? ");
            parmas.add("%"+value+"%");
        }
    }
    System.out.println(sb.toString());
    System.out.println(parmas);
    return jdbcTemplate.queryForObject(sb.toString(),Integer.class,parmas.toArray());

我都怀疑我的视力有问题 那个中文问号那么明显,我生生看了半个小时,哈哈哈,一般报这个错的基本都是sql语句的问题仔细检查吧