【问题标题】:Displaying multiple values from a ResultSet in a single JTable cell在单个 JTable 单元格中显示来自 ResultSet 的多个值
【发布时间】:2013-04-20 06:37:46
【问题描述】:

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

这是我目前拥有的

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

这里的 x 应该是我需要显示 mySQL 数据库中的所有故障编号的那 2 个故障编号。因为我需要在第 3 列的单行中显示来自 ISG 的 2 个故障编号,以逗号分隔。我如何获取这 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 类的工作方式也很困惑,任何帮助都会很棒,干杯!

【问题讨论】:

    标签: java mysql swing jtable resultset


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 当然,我会花一些时间讨论这个话题,然后尽快通知你兄弟。但我相信我在这个方面走在了正确的轨道上,因为你提到了 tablemodels(同一个话题一整天都在我脸上爆炸)并给了我链接。所以,是的,接受了。干杯!
    • 只是一个更新,我发现这个 rs2xml.jar 工具非常有用,让我摆脱了痛苦。 youtube.com/watch?v=hg1S3QHFNrE
    猜你喜欢
    • 2016-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多