Jtable中只显示一行数据库表

时间:2014-04-09 11:13:09

标签: java mysql swing jtable

我在Swing.Now中使用Netbeans GUI设计了一个Jtable,根据我的要求,我必须将数据库表值显示为jtable。

这是我的代码..

    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();

为什么当表中有这么多行时,此代码只将一行数据库显示为jtable。 请帮我解决这个问题。

1 个答案:

答案 0 :(得分:1)

每次覆盖数据时,因为您只添加了一次该行,这是当前在while循环之后

因此,尝试在循环中添加行数据,如:

while (resultSet.next()) {

    data_rows = new Vector();

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

    }

    dtm.addRow(data_rows);
}