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

这里费时很多,谨记!

数据库错误:****Parameter index out of range (1 > number of parameters, which is 0).

错误发生原因其实很简单,就是当设置参数时,没有相应的问号与之匹配(或者根本就没有?号).
如果是:Parameter index out of range (26 > number of parameters, which is 25).
翻译为:找到了25个问号,却插入了26个值,导致参数越界(根据得到的信息打印将很容易判断数据是否与数据库字段匹配等小问题)。
与sql语句有关的原因如下:
1.?号被单引号包围。
(如pstmt.setString(1, Name);时sql语句为:select * from t_book where (Name like ‘%?%’) or (Auther like ‘%?%’)”。
此时?会被作为参数传入,而不会再传入 setString里面的值。
上式可改为:”select * from t_book where (Name like ‘%”+Name+”%’) or (Auther like ‘%”+Name+”%’)”,从而就不用pstmt.setString(1, Name)了。
2.sql语句中没有?号,在后面用到了set语句。(如:select * from table);
此时无需传值。传值就会出错。
3.初学者很常见的错误:?—?
这两个问号是不同了,因为一个是中文,一个是英文,如果在sql语句中写入的是英文,将无法识别。

其他原因:
1.连接已经关闭。
如果与其他操作语句一起公用conn时,如果上一操作已经关闭连接,则会报错。表现为:时而能够进行操作,时而不能。
2.pstm没有初始化,无驱动包,得到连接出错等基础问题……

都是一些比较基础的东西,希望大家不要犯这种错误,浪费宝贵时间。

参考:http://www.cnblogs.com/1020182600HENG/p/6097475.html(在此感谢!)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值