在单个JTable单元中显示ResultSet中的多个值

时间:2013-04-26 06:58:18

标签: java mysql swing jtable resultset

我目前停留在我的项目中,我需要生成每日报告。 我需要显示一整天通话中涉及的所有故障号码。

这是我目前拥有的

| Number of calls from ISG |  2  |    |
| Fault Numbers            |     |  x |

这里x应该是我需要显示mySQL数据库中所有故障号的2个故障号。因为我需要在第3列的ISG IN A SINGLE LINE中显示2个错误号,用逗号分隔。我如何获取这两个结果,因为在我第一次尝试时,只检索到第一行。

对于调用次数,这是我的方法,其中q是查询。

public void dailyResult(String q, int x, int y){

    try{
        Statement stmtDr = (Statement)daily.createStatement();
        ResultSet rs = stmtDr.executeQuery(q);
    if(rs.next()){
        reportTable1.setValueAt(rs.getInt(1), x, y);
    }
    }catch(Exception e){
                   JOptionPane.showMessageDialog(rootPane, "Error 106\n\nAn error has occured with the resultset procedure method. Please try again later.", "Error!", JOptionPane.ERROR_MESSAGE);
    }
}

关于在单个jtable单元格中显示这些数字,我不知道如何执行此类任务。我是mySQL查询的初学者,我对ResultSet类的工作方式也非常困惑,任何帮助都会很棒,欢呼!

1 个答案:

答案 0 :(得分:3)

您不应该与表格进行交互,而应该使用表格的模型进行交互。

如果您使用的是DefaulTableModel,则可以利用addRow方法,该方法允许您向表中添加新行(通过模型),否则您将需要提供TablModel的实现,该实现具有允许您更新基础数据结构的适当方法

仔细查看How to use tables了解详情

ResultSet类基本上具有“当前”行的概念,允许您从结果列中提取单个值(由原始查询指定)。这些可以通过订单或名称提取,具体取决于您的需求