java.lang.IndexOutOfBoundsException: Remember that ordinal parameters are 1-based!

问题描述

java.lang.IndexOutOfBoundsException: Remember that ordinal parameters are 1-based!

红色部分报错

for (int i = 0; i < listParam.size(); i++) {
  query.setParameter(i, listParam.get(i));
}

原因

需要的查询参数数量和实际赋值的数量不一致,例如我在sql语句中只有3个“?”,在for循环中却要赋值4次

实际案例

sql.append(" AND DEV.S_CAPTION LIKE '%?%' ");  

将SQL语句中'中的?没有解析成占位符,解析成字符串了

个人随笔,如有错误,敬请指正

原文地址:https://www.cnblogs.com/7q4w1e/p/9597984.html