ERROR-java.sql.SQLException: Parameter index out of range (2 > number of parameters, which is 1)

原文链接:https://www.longkui.site/error/error-java-sql-sqlexception/4388/
0.背景
mybatis 执行insert语句的时候,报上面的错,找了很长时间才发现错误。把问题和解决办法写下来,供大家参考。

1.问题及解决办法
主要是两个方面的问题,

第一个是在xml文件中出现了注释,也就是下面这样子。

select from
– 这是一条注释
student
/
这是一条注释 */
出现了上面这样的注释,尽量把这些注释删除掉。

经实测,有的 注释 并不会报这个错,有的注释会报这个错(删除后正常)。

第二个方面,xml 文件错误,主要原因有关参数、占位符、引号之类的错误,举几例子。

insert into index_transfer_save(id,org_id, project_id, region_code, time, company_name, countNum, type, project_name)
values (#{id}, (SELECT id FROM xxxx WHERE code= #(regionCode)), #{projectId}, #{regionCode}, #{time}, #{companyName}, #{countnum}, #{type}, #{projectName})
上面代码有一段是

SELECT id FROM xxxx WHERE code= #(regionCode)
单独拎出来可以看到明显的错误, #{regionCode} 写成了 #(regionCode)。但是一开始放在sql语句里没有看出。

所以,请仔细检查sql语句。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值