我在下面的 try-catch block 中收到“索引 0 超出范围”异常,但我一生都无法弄清楚抛出异常的位置?
try{
cs = this.con.prepareCall("{call "+storedProcName+"("+procParams+")}");
for(int j = 0; j < params.length; j++){
if (paramTypes[j].equalsIgnoreCase("Int")) {
int x = 0;
try{
x = Integer.parseInt(params[j]);
} catch(Exception e) {}
cs.setInt(j, x);
} else if (paramTypes[j].equalsIgnoreCase("Boolean")) {
boolean x = false;
try{
x = (params[j].equalsIgnoreCase("True")) || (params[j].equalsIgnoreCase("T")) || (params[j].equalsIgnoreCase("1")) || (params[j].equalsIgnoreCase("Yes")) || (params[j].equalsIgnoreCase("Y"));
} catch(Exception e) {}
cs.setBoolean(j, x);
} else if (paramTypes[j].equalsIgnoreCase("String")) {
cs.setString(j, params[j]);
}
}
}catch(Exception e){
System.out.println("---------------------------------------------");
System.out.println("Problem constructing callableStatement: "+e);
System.out.println("---------------------------------------------");
}
感谢任何人看到这个并可能为我指明正确的方向!
最佳答案
PreparedStatement 中参数的索引从 1 开始,而不是从 0 开始。
因此第一个参数的索引为 1。如果您尝试使用 0 作为索引,它会提示这不是有效的索引。
关于java - 索引 0 超出范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9835371/