java - 索引 0 超出范围

标签 java exception indexing

我在下面的 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/

相关文章:

Java - 如何调试任务<Void>?

php - 如何在错误的数据库连接上设置自己的异常?

mysql - 为什么这个查询被记录为slow_query?

sql - MySQL 是否使用现有索引来创建新索引?

python - 替换 numpy 数组中的值

java - 用C++解析Java源代码

java - 与泛型类型的动态绑定(bind)

java - 根据给定的参数,JVM 使用多少物理内存?

java - 缩放两个项目

c# - 这是好习惯吗?