java.sql.SQLException:列索引超出范围,2 > 1

问题描述 投票:0回答:2

我有一条我不明白的错误消息。该消息是下一个“java.sql.SQLException:列索引超出范围,2 > 1” 请问我的问题是不是来自我的请求sql?

String req = "Select A.CodeA from album A, collabo C where A.CodeA = C.CodeA order by 1 ";
        ResultSet resu = ConnexionMySQL.getInstance().selectQuery (req);
        try {
            while (resu.next())
            {  
                myList.add (new Appareil(resu.getString(1), 
                             new Album (resu.getString(2))));

             }
        }

或者也许在我的文件 TableModel Appareil 中?我有一列“识别”,只是我不明白为什么它不起作用?

private String[] columnNames = {"Identification"};
    private ArrayList <Appareil> myList;

    public TableModelAppareils (ArrayList myList)
    {
        this.myList = myList;
    }

    public int getColumnCount() {
        return columnNames.length;
    }

    public int getRowCount() {
        //System.out.println("row count : " + myList.size());
        return myList.size();
    }

    @Override
    public String getColumnName(int col) {
        return columnNames[col];
    }

    @Override
    public Object getValueAt(int row, int col) {
        Appareil myApp = myList.get(row);
        switch (col)
        {
            case 0 :    return myApp.getAppAlb().getCodeA();
        }
        return null;
    }

    @Override
    public Class getColumnClass(int c) {
        switch (c)
        {
            case 0 :    return String.class;

        }
        return null;
    }

    public void setMyList (ArrayList myList)
    {
        this.myList = myList;
        this.fireTableDataChanged();
    }

    public ArrayList <Appareil> getMyList ()
    {
        return myList;
    }

    public Appareil getMyList (int index)
    {
        return myList.get(index);
    }

非常感谢

java sql swing
2个回答
2
投票

您正在代码中使用

ResultSet
访问
resu.getString(2)
中的第二列,但是您只是在选择查询中选择一列
A.codeA


0
投票

就我而言,在使用 EclipseLink 时,问题是

@MappedSuperclass
类包含
protected
字段并继承类定义的同名字段。在数据库中,只有一列具有该名称。

我不熟悉 EclipseLink 如何处理实体字段,但是两个相同类型、相同名称字段的问题导致在某些情况下抛出此错误。

映射超类:

@MappedSuperclass
public abstract class PersistentObject {

    @Id
    @GeneratedValue
    protected Long id;

    @Column(nullable = false)
    protected boolean alive = true;
}

继承类:

@Entity
public lass MyObj extends PersistenObject {

    @Column(nullable = false)
    private boolean alive = true;
}
© www.soinside.com 2019 - 2024. All rights reserved.