Как установить значения в Jtable? - PullRequest
0 голосов
/ 16 сентября 2018

У меня есть две таблицы в моей базе данных (с использованием MySQL Workbench), но я не могу одновременно установить данные в этих таблицах на jtable . Как я могу исправить эту проблему? (Получить значения из двух таблиц или связанных полей и установить их в jtable)

1 Ответ

0 голосов
/ 17 сентября 2018

Я имею в виду два набора результатов?

Почему у вас есть два ReultSets? У вас есть два варианта:

  1. Измените ваш SQL-запрос, чтобы получить данные в один ResultSet

  2. Не используйте DBUtils для создания TableModel

В этом случае вам необходимо загружать данные из ResultSet вручную по одной строке за раз.

Для первого ResultSet вам нужно создать столбцы для таблицы, а затем добавить строки данных. Основная логика будет:

    Vector<Object> columnNames = new Vector<Object>();
    Vector<Object> data = new Vector<Object>();

    //  Read data from a table

    String sql = "Select * from ???";
    Statement stmt = connection.createStatement();
    ResultSet rs = stmt.executeQuery( sql );
    ResultSetMetaData md = rs.getMetaData();
    int columns = md.getColumnCount();

    //  Get column names

    for (int i = 1; i <= columns; i++)
    {
        columnNames.addElement( md.getColumnName(i) );
    }

    //  Get row data

    while (rs.next())
    {
        Vector<Object> row = new Vector<Object>(columns);

        for (int i = 1; i <= columns; i++)
        {
            row.addElement( rs.getObject(i) );
        }

        data.addElement( row );
    }

    rs.close();
    stmt.close();
    connection.close();
}
catch(Exception e)
{
    System.out.println( e );
}

Для второго ResultSet вы просто добавляете данные в Вектор.

Затем вы создаете DefaultTableModel, используя два вектора, и создаете JTable, используя TableModel.

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