报错String index out of range是啥意思?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了报错String index out of range是啥意思?相关的知识,希望对你有一定的参考价值。

参考技术A 你是在编程的时候碰到这个错误的吧,这个错误是说数组或者字符串的索引(即下标)超出了范围,比如在C语言中你设a[10],但是调用的使用调用了a[i],i比10大,就会报错超出了范围。 参考技术B 字面的意思就是“字符串下标越界”。例如一个10字符的字符串,你想操作第20个字符,这种操作很可能非法改变内存中的其它数据导致严重后果。 参考技术C 字符串超出范围
譬如给人物取名字,只能三个字即六个字符,你输四个字就要报错
参考技术D 直接百度这个错误提示,很多CSDN的答案。很多错误百度都可以搜索到答案。

使用JDBC报错“Parameter index out of range (2 > number of parameters, which is 1).“

异常

在使用JDBC的PreparedStatement的时候报错:

Exception in thread "main" java.sql.SQLException: Parameter index out of range (2 > number of parameters, which is 1).
	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:959)
	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:898)
	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:887)
	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:862)
	at com.mysql.jdbc.PreparedStatement.checkBounds(PreparedStatement.java:3319)
	at com.mysql.jdbc.PreparedStatement.setInternal(PreparedStatement.java:3304)
	at com.mysql.jdbc.PreparedStatement.setInternal(PreparedStatement.java:3341)
	at com.mysql.jdbc.PreparedStatement.setLong(PreparedStatement.java:3358)
	at com.mysql.jdbc.PreparedStatement.setObject(PreparedStatement.java:3529)
	at com.mysql.jdbc.JDBC42PreparedStatement.setObject(JDBC42PreparedStatement.java:68)
	at com.demo.bean.dao.BaseMapper.updateById(BaseMapper.java:289)
	at com.demo.bean.dao.Test.main(BaseMapper.java:143)

原因

根据堆栈跟踪信息提示:在SQL语句中找到了1个问号,即"which is 1"提示的信息;但却插入了2个值,即"2 > number of parameters"提示的信息,所以有问题。

也就是说发生错误的原因是当设置参数时,没有相应的问号与之匹配,然后导致参数越界。

 查看SQL语句,确实只有一个问号,所以要传入正确的SQL语句。

解决

传入正确的SQL语句,即添加对应参数个数的问号。

以上是关于报错String index out of range是啥意思?的主要内容,如果未能解决你的问题,请参考以下文章

解决:magic_number = pickle_module.load(f, **pickle_load_args)EOFError: Ran out of input

(2008) MySQL client ran out of memory怎么解决

使用JDBC报错“Parameter index out of range (2 > number of parameters, which is 1).“

Django集成Xadmin list index out of range报错解决方案

Python_报错:SyntaxError: 'break' outside loopIndexError: list assignment index out of range(示例

Excel excel ran out of resources是啥意思