отображать данные в формате jlite - PullRequest
3 голосов
/ 17 мая 2010

Я пытаюсь отобразить таблицу данных sqlite в jtable, но у меня появляется ошибка "sqlite is only forward forward" *

как я могу отобразить ее в jtable

               try {
        long start = System.currentTimeMillis();

                    Statement state = ConnectionBd.getInstance().createStatement(
                   ResultSet.TYPE_SCROLL_INSENSITIVE, 
                                                    ResultSet.CONCUR_READ_ONLY

   );
    ResultSet res = state.executeQuery("SELECT * FROM data");

        ResultSetMetaData meta = res.getMetaData();

        Object[] column = new Object[meta.getColumnCount()];

        for(int i = 1 ; i <= meta.getColumnCount(); i++){
            column[i-1] = meta.getColumnName(i);
        }

        res.last();
        int rowCount = res.getRow();
        Object[][] data = new Object[res.getRow()][meta.getColumnCount()];

        res.beforeFirst();
        int j = 1;

        while(res.next()){
            for(int i = 1 ; i <= meta.getColumnCount(); i++)
                data[j-1][i-1] = res.getObject(i);

            j++;
        }

        res.close();
        state.close();

        long totalTime = System.currentTimeMillis() - start;
        result.removeAll();
        result.add(new JScrollPane(new JTable(data, column)), BorderLayout.CENTER);
        result.add(new JLabel("execute in " + totalTime + " ms and has " + rowCount + " ligne(s)"), BorderLayout.SOUTH);
        result.revalidate();

    } catch (SQLException e) {
        result.removeAll();
        result.add(new JScrollPane(new JTable()), BorderLayout.CENTER);
        result.revalidate();
        JOptionPane.showMessageDialog(null, e.getMessage(), "ERREUR ! ",                      JOptionPane.ERROR_MESSAGE);
    }

спасибо

1 Ответ

1 голос
/ 17 мая 2010

Звонок на res.last() является причиной проблемы. Если вы хотите узнать, сколько строк, то вы можете либо сначала выдать SELECT count(*) FROM (<your-query> ) base, либо проще, использовать ArrayList вместо массива объектов для хранения строк. (Вы все еще можете использовать Object [] для каждой строки, поскольку количество столбцов известно заранее.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...