Ram
Ram

Reputation: 565

Only one row of database table is displayed in Jtable

I have designed a Jtable using Netbeans GUI in Swing.Now as per my requirement i have to display database table values into jtable.

Here is my code ..

    Statement statement = (Statement) con.createStatement();
    ResultSet resultSet = statement.executeQuery(sql);
    ResultSetMetaData metaData = (ResultSetMetaData) resultSet.getMetaData();

    DefaultTableModel dtm = new DefaultTableModel();

    int columns = metaData.getColumnCount();

    Vector Column_Name = new Vector();
    Vector data_rows = new Vector();


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

    dtm.setColumnIdentifiers(Column_Name);

    while (resultSet.next()) {

        data_rows = new Vector();

        for (int j = 1; j < columns; j++) {
            data_rows.addElement(resultSet.getString(j));
        }
    }
    dtm.addRow(data_rows);

    jTable1.setModel(dtm);

    resultSet.close();

Why is this code displaying only one row of my database into jtable when there so many rows in the table. Please help me to solve this.

Upvotes: 0

Views: 1692

Answers (1)

Salah
Salah

Reputation: 8657

Each time you overwrite you data, because you have added the row just one time, which is currently after the while loop

So try to move the adding of row data in the loop like:

while (resultSet.next()) {

    data_rows = new Vector();

    for (int j = 1; j < columns; j++) {
        data_rows.addElement(resultSet.getString(j));

    }

    dtm.addRow(data_rows);
}

Upvotes: 1

Related Questions