MyBatis 使用${}形式Parameter index out of range (1 > number of parameters, which is 0).异常

问题描述

最近在开发一个SpringBoot项目时,在使用MyBatis时出现了一个异常:

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

刚开始使用MyBatis由于语法不熟练,导致在查询数据时,没有使用#{}的形式传参,而是使用${}的形式传参。

其实使用${}方式传参是可以正常运行项目的,但是由于需要传入的数据可能是数值类型,因此在使用${}时在周围添加了引号让其强制转为字符类型。

数字类型的问题已经解决了,但是通过了解,MyBatis的#{}可以预防SQL注入攻击,于是将所有的${}改为了#{}的形式,但是由于引号没有删除,于是代码一运行就出现了以下情况。

解决方案

解决办法也很简单,将所有的单引号删除即可,如下图。

上一篇
下一篇