Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/345.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java.sql.SQLException:列索引无效_Java_Sql_Oracle_Oracle11g - Fatal编程技术网

java.sql.SQLException:列索引无效

java.sql.SQLException:列索引无效,java,sql,oracle,oracle11g,Java,Sql,Oracle,Oracle11g,我有一个SQL查询,我想用它将组件计数到表中 private DCDataObj dc; public class DCDataObj { private int datacenter; // Datacenters .............. public DCDataObj(int datacenter............) { this.datace

我有一个SQL查询,我想用它将组件计数到表中

private DCDataObj dc;

    public class DCDataObj
    {

        private int datacenter;             //  Datacenters
        ..............

        public DCDataObj(int datacenter............)
        {
            this.datacenter = datacenter;
            ...............
        }

        public int getDatacenter()
        {
            return datacenter;
        }

        public void setDatacenter(int datacenter)
        {
            this.datacenter = datacenter;
        }

        ............
    }

ps = conn.prepareStatement("SELECT COUNT(1) AS CNT FROM COMPONENTSTATS CS, COMPONENTTYPE CT "
        + " WHERE CS.COMPONENTTYPEID = CT.COMPONENTTYPEID AND CT.COMPONENTTYPEID IN ( "
        + " ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, " //  10
        + " ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, " //  20
        + " ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, " //  30
        + " ?, ?, ?, ?, ?, ?, ?, ?, ?, ? ) " //  40
        + " GROUP BY CT.NAME ORDER BY CT.NAME");

ps.setInt(1, 1000);
...............

ResultSet result = ps.executeQuery();
            while (result.next())
            {

                dc = new DCDataObj(
                        result.getInt(1),
                        ...............
以下是完整的源代码:

我收到以下错误消息:java.sql.SQLException:列索引无效


这是设计问题还是SQL查询中的问题?

我看到了您的完整源代码,您有一大堆
result.getInt(INDEX)
。由于只执行
SELECT COUNT(1)
,因此只有一列,因此对于
INDEX
中除1以外的任何值,
getInt()
都将失败


将查询更改为
SELECT…
,其中
LIST
是一个以逗号分隔的列名列表,您要从中检索值。

是否在
ps.setInt
result.getInt
处收到错误?完整的堆栈跟踪应显示问题所在的行。没有“正确”查询,您希望查询返回的是什么?我希望查询返回每个组件的编号。那么为什么在查询后创建一个
新的DCDataObj(…)
对象。您应该创建一个
int
作为
int count=result.getInt(1)是,但我想用每个组件的编号填充Java对象。通过一个SQL查询,我想获得每个组件的数量。您的对象类没有count字段。您必须以不同的方式存储计数。