Java jdbc错误参数索引超出范围(2>;个参数,即1)
我编写了以下java方法,当我调用它时,给出了错误Java jdbc错误参数索引超出范围(2>;个参数,即1),java,jdbc,Java,Jdbc,我编写了以下java方法,当我调用它时,给出了错误 Parameter index out of range (2 > number of parameters, which is 1). 它在preparedStatement.setInt(2,p)行给出错误 for(int t=0;t您正在为两个不同的SQL语句使用相同的prepared语句。并且没有任何参数是不同的。这就是为什么会出现此错误 试着跟随 如果(allocationProb==0){ p=1; preparedStat
Parameter index out of range (2 > number of parameters, which is 1).
它在preparedStatement.setInt(2,p)行给出错误
for(int t=0;t您正在为两个不同的SQL语句使用相同的prepared语句。并且没有任何参数是不同的。这就是为什么会出现此错误
试着跟随
如果(allocationProb==0){
p=1;
preparedStatement=dbConnection.prepareStatement(sql)
希望对您有所帮助您对两个不同的SQL语句使用相同的预处理语句。并且没有任何参数是不同的。这就是为什么您会出现此错误
试着跟随
如果(allocationProb==0){
p=1;
preparedStatement=dbConnection.prepareStatement(sql)
尽管您更改了sql
变量,希望它对您有所帮助
sql="UPDATE `trial`.`teacherallocation` SET `AllocationSub1`=?,` allocationProb`=? WHERE `TeacherID`=?;";
您不会使用它创建新的PreparedStatement
。因此,当您调用
preparedStatement.setString(1,str1);
preparedStatement.setInt(2,p);
preparedStatement.setString(3,var1[t]);
preparedStatement.executeUpdate();
您在SQL上调用它
sql="SELECT allocationProb FROM trial.teacherallocation where TeacherID=?;";
它只有一个参数,如果您尝试添加更多参数,将引发异常
您需要在这些行之前创建一个新的或重新分配一个PreparedStatement
对象
sql="UPDATE `trial`.`teacherallocation` SET `AllocationSub1`=?,` allocationProb`=? WHERE `TeacherID`=?;";
preparedStatement = dbConnection.prepareStatement(sql);
preparedStatement.setString(1,str1);
preparedStatement.setInt(2,p);
preparedStatement.setString(3,var1[t]);
preparedStatement.executeUpdate();
此外,在使用完所有jdbc连接后,还应该关闭它们
preparedStatement.close();
尽管您更改了sql
变量
sql="UPDATE `trial`.`teacherallocation` SET `AllocationSub1`=?,` allocationProb`=? WHERE `TeacherID`=?;";
您不会使用它创建新的PreparedStatement
。因此,当您调用
preparedStatement.setString(1,str1);
preparedStatement.setInt(2,p);
preparedStatement.setString(3,var1[t]);
preparedStatement.executeUpdate();
您在SQL上调用它
sql="SELECT allocationProb FROM trial.teacherallocation where TeacherID=?;";
它只有一个参数,如果您尝试添加更多参数,将引发异常
您需要在这些行之前创建一个新的或重新分配一个PreparedStatement
对象
sql="UPDATE `trial`.`teacherallocation` SET `AllocationSub1`=?,` allocationProb`=? WHERE `TeacherID`=?;";
preparedStatement = dbConnection.prepareStatement(sql);
preparedStatement.setString(1,str1);
preparedStatement.setInt(2,p);
preparedStatement.setString(3,var1[t]);
preparedStatement.executeUpdate();
此外,在使用完所有jdbc连接后,还应该关闭它们
preparedStatement.close();
您正在使用的准备好的语句用于SQLSQL=“SELECT allocationProb FROM trial.teacherallocation where TeacherID=?;”;
它只有一个参数。您正在使用的准备好的语句用于SQLSQL=“SELECT allocationProb FROM trial.teacherallocation where TeacherID=?;”;
只有一个参数。如果其中任何一个答案有帮助,您可以向上投票和/或接受其中一个。@user2094670:如果您认为索蒂里奥斯的答案有帮助,我建议您接受并向上投票。如果任何一个答案有帮助,您可以向上投票和/或接受其中一个。@user2094670:如果您认为索蒂里奥斯的答案有帮助,我建议您向上投票你应该接受并投票表决。