Данные SQL и JTable - PullRequest
       5

Данные SQL и JTable

0 голосов
/ 17 июня 2009

Я пробую одну примерную программу для практики и хочу отобразить результаты базы данных в JTable. Проблема в том, что я понятия не имею, как это сделать. Я знаю, как получить данные из базы данных и отобразить их в текстовом поле или консоли, но никогда не пробовал с JTable. Как это сделать ?

Учтите, что у меня есть таблица, в которой хранится такая информация, как имя человека, возраст, город и дата. Я хочу, чтобы он отображался через JTable. Также возможно ли обновить отображение JTable, если я добавлю опцию добавления дополнительных деталей в программу (я имею в виду добавление записей в БД, которые сразу же будут отображаться в JTable)?

Любые предложения, указатели о том, как поступить, приветствуется. Заранее спасибо.

Ответы [ 2 ]

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

вот код

public static TableModel resultSetToTableModel(ResultSet rs) {
try {
    ResultSetMetaData metaData = rs.getMetaData();
    int numberOfColumns = metaData.getColumnCount();
    Vector<String> columnNames = new Vector<String>();

    // Get the column names
    for (int column = 0; column < numberOfColumns; column++) {


    columnNames.addElement(metaData.getColumnLabel(column + 1).toUpperCase());
    }

    // Get all rows.
    Vector<Vector<Object>> rows = new Vector<Vector<Object>>();

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

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

    rows.addElement(newRow);
    }

    return new DefaultTableModel(rows, columnNames);
} 
catch (Exception e)
{
    e.printStackTrace();

    return null;
}

}

Вы можете назвать этот метод таким образом

void update_Table() throws ParseException 
    {
        // we used this try catch so that values in table  automatically show(without clicking on any button) when the dialog box open          
                    try
                    {
                   Connection con=MSUTIL.getMSConnection();
                    PreparedStatement  pst=con.prepareStatement("select  payment_mode from PaymentMode");   
                 ResultSet  rs=pst.executeQuery();
                   //here i call that method
                    table.setModel(resultSetToTableModel(rs));
                    table.getTableHeader().setFont(new Font("SansSerif", Font.BOLD, 14));
                    while(rs.next())
                    {
                            mp.paymentmode_ComboBox.addItem(rs.getString("payment_mode"));
                    }

                   }
                    catch(SQLException e)
                    {
                        e.printStackTrace();
                    }
                    finally
                    {
                       //this method is for closing the connection
                        MSUTIL.cleanUp(con, pst, rs);
                    }

}

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