Заполнение таблицы через SQL запрос[JAVA]

152
13 апреля 2018, 17:55

Привет, подключаюсь до БД вывожу данные через rs.next(), все ок. Написал функцию для вывода значений в таблицу и получаю каждый раз ошибку

ArrayIndexOutOfBoundsException: 0 >= 0

Понимаю что ошибка с индексом, но что только не изменял ничего не получается

public JTable getTable(String nameTbl){
    JTable tbl = new JTable();
    String querty = "select * from " + nameTbl;
    try {
        rs = st.executeQuery(querty);
        rsmd = rs.getMetaData();
        int countCol = rsmd.getColumnCount();
        int countRow = rs.getRow();
        javax.swing.table.DefaultTableModel dtm = new javax.swing.table.DefaultTableModel();
        dtm.setRowCount(0);
        int cC = 0;
        int cR = 0;
        int n = 0;
        String[] nameColumn = new String[10];
        int c = 0;
        for(int i = 1; i <= rsmd.getColumnCount(); i++){
            nameColumn[c] = rsmd.getColumnName(i);
            c++;
        }
        while(rs.next()){
            dtm.setRowCount(dtm.getRowCount() + 1);
            if(cC < countCol){
                dtm.setValueAt(rs.getString(nameColumn[cC]), cC, cR);
                cC++;
            }
            if(cC == countCol) cC = 0;
            cR++;
        }
        tbl.setModel(dtm);
    } catch (SQLException ex) {
       System.out.println("Error " + ex);
    }
    return tbl;
}

место возникновения ошибки

dtm.setValueAt(rs.getString(nameColumn[cC]), cC, cR);
Answer 1

посмотрите на сигнатуру метода javax.swing.table.DefaultTableModel.setValueAt вы кажется попутали cC и cR местами

а также вы нигде не задаете количество колонок dtm.setColumnCount()

READ ALSO
Команда oracle из явы

Команда oracle из явы

Как можно выполнить команду oracle Grant из явы

146
Создание элементов в xml на java

Создание элементов в xml на java

Всем доброго времени суток :) В общем вот такой вопрос: создал класс с методом сохранения данных, которые лежат в HashMap, в XML файлМапа точно не пустая,...

130
Взял первый заказ на UpWORK - как спасти себя? [требует правки]

Взял первый заказ на UpWORK - как спасти себя? [требует правки]

Позавчера взял первый заказ на UpWORK - через 2 года после регистрации профиляРаньше то не получалось, то руки не доходили

289
C++ и Lua использование нескольких версий

C++ и Lua использование нескольких версий

Как можно использовать несколько версий Lua (например 52 и 5

262