首先我们先来看看这些英文的意思
java.sql.SQLException:违反协议异常的一种解释,也可以说sql数据库异常报错。
Parameter index out of range:参数越界。
5 > number of parameters, which is 3:直译的话是小于5的参数是3.这时候大多数人是懵逼的。为什么小于5的参数是3呢?其实很好理解,因为我们给占位符赋值的时候是用到ps.setString(parameterIndex, x);这个函数的。parameterIndex是下标,x对应的值。
当我们下标的范围超出了本该有的占位符个数的时候就会报错。
报错了不要紧好好回头检查自己的逻辑层。
接下来说一下我自己写代码的经验:
刚开始报错的时候很难找到自己的错误处在什么地方,这是很正常的。因为自己现在的逻辑和代码是统一的,我们容易陷入自己的逻辑误区并且吧错误的逻辑认为是对的。这会持续很长一段时间,当过了这段时间我们再去思考代码逻辑的时候就会猛然发现。哇!原来错误这么明显。