通过JDBC连接MySQL数据库报错:Parameter index out of range (1 > number of parameters, which is 0).的解决方法

本文探讨了在使用JDBC进行MySQL数据库操作时遇到的参数索引超出范围异常,详细分析了两种常见原因:一是SQL语句中未正确使用占位符;二是参数传递时下标使用错误。并通过实例演示了如何修正错误的SQL语句。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天在学习使用jdbc进行用户的登录校验,在对MySQL数据库进行增删改查操作时,报了如下异常。
在这里插入图片描述
具体意思是参数索引超出范围,一般发生这种情况有两种原因:

一是当你往要执行的sql语句里传了一个参数,但是sql语句里没用?代替需要参数的地方,所以传不进去。

我就犯的这个错误,想通过占位符来动态的传参将

String sql="insert into a_student(a_name,a_point) values('hhh','66')";

改成这样,忽略了占位符不需要单引号的,因该将单引号去掉

String sql="insert into e_student(e_name,e_point) values('?','?')";//错
String sql="insert into e_student(e_name,e_point) values(?,?)";//对
二是因为向SQL语句中传参数的下标注意是从1开始的,有可能当你传参数的时候忘了,误以为下标从0开始,结果报异常了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值