使用mybatis报错: Parameter index out of range (2 > number of parameters, which is 1)

684 阅读1分钟

如果常规方法解决不了问题,可以试试这个解决方法,这个错误的字面意思是找到了1个问号,却插入了2个值,导致参数越界;实际上是在 mapper 中定义的参数传到 xml 中之后,在查询之前 mybatis 会对其进行动态解析。mybatis 为我们提供了两种支持动态 sql 的语法:#{} 以及 ${}。 #{} 在预处理时,会把参数部分用一个占位符 ? 代替: sql 语句 :select * from sys_user where name=#{name} and name=#{name}会解析wei

select * from sys_user where name=? and name=?,此时只传入一个值,修改sql语句为

select * from sys_user where name=#{name} and name=${name} ,问题解决