Java中具有相同ResultSet的多个jTable

时间:2014-03-25 16:34:47

标签: java mysql swing resultset apache-commons-dbutils

您可以使用相同的jTable填充多个resultSet吗?

public void tableDisplay() {

    String tableQuery = "SELECT foodQuantity,foodName FROM food ORDER BY RAND() LIMIT 3";
    ResultSet rs;
    PreparedStatement statement;
    try {

        statement = con.prepareStatement(tableQuery);
        rs = statement.executeQuery();
        jTable1.setModel(DbUtils.resultSetToTableModel(rs));
        jTable2.setModel(DbUtils.resultSetToTableModel(rs));

    } catch (SQLException ex) {
        System.out.println(ex.toString());
    }
}

代码编译但第二个表没有从DB获取任何记录。 关键是我需要从mySql表中选择随机项,我想在少数jTables中显示它们。

2 个答案:

答案 0 :(得分:3)

在不了解您的代码的情况下,我要说您需要调用DbUtils.resultSetToTableModel(rs)一次,并将生成的表模型存储在本地变量中。然后,将该局部变量传递给两个setModel(...)方法

答案 1 :(得分:1)

如何使用resultSet填充JTable

try{
playerTableModel = (DefaultTableModel)playerTable.getModel();
            rs = controller.getPlayer();
            while (playerTableModel.getRowCount() > 0);
            int columns = playerTableModel.getColumnCount();
            Object[] rows = new Object[columns];
            while(rs.next()){

                    rows[0] = rs.getString(1);
                    rows[1] = rs.getString(2);
                    rows[2] = rs.getString(3);
                    rows[3] = rs.getString(4);

                    playerTableModel.addRow(rows);
}catch(Exception e){
                e.printStackTrace();
        }

你也不能只为第二张表调用相同的方法吗?