java - Jtable中只显示数据库表的一行

标签 java mysql swing jtable

我在 Swing 中使用 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 中。 请帮我解决这个问题。

最佳答案

每次覆盖数据时,因为您只添加了该行一次,当前是在 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);
}

关于java - Jtable中只显示数据库表的一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22960787/

相关文章:

java - 使用数学函数优化此 Java 代码的建议

php - 如何将 `23/05/2012` 格式化为 DATETIME 列中的可插入值?

mysql - 表索引建议

java - 如何在基本 RPG 游戏中使用 Thread.sleep

java - 将KeyListener添加到Jpanel

java - 如果用户点击 JOptionPane.showMessageDialog 顶角的 x,则返回

java - 从Java类调用C++方法?

java - 在 Linux/Unix 上被动监控 SQL 查询

mysql - 如何在 MySQL 中形成这个 WHERE 子句?

java - 使用 java GUI 的多个时钟