java - 从数据库填充表

标签 java oracle swing jtable

我正在尝试从数据库中检索行并填充表。我不明白这段代码的问题出在哪里:

if ((report.getMsg()=="selectEventoAll") && (report.getEsito()==1))
{

    DefaultTableModel dtm = new DefaultTableModel();
    eventi_tb.setModel(dtm);

    try
    {
        ResultSet res_eventi = report.getRes();
        i = 0;
        Object[][] datiEventi = new Object[report.getRowCount()][5];

        while(res_eventi.next())
        {
           j = 0; 
           while (j < 5)
           {
              datiEventi[i][j] = res_eventi.getObject(j+2);
              j++;
           }
           dtm.addRow(datiEventi[i]);
           i++;
        }
    }

最佳答案

这是一个糟糕的设计。您将 UI 和数据库混合在一起。如果您从 Swing 更改为 Web UI,您的代码就不好。这种方式也更难测试和调试。

将问题分成两部分:数据库访问和 Swing 显示。

有一个对象除了查询结果并将其加载到数据结构中之外什么也不做。

有另一个除了接受数据结构并将其加载到 Swing UI 中以供显示之外什么都不做。

您的应用程序将使数据库与用户界面分离。您的测试和调试生活将会更加轻松。

发布更多代码和错误消息也许可以帮助我们比猜测更快地帮助您。

结果集中各列的循环对我来说看起来很可疑。它们从 1 到列数,但您从 2 开始。为什么?如果您的查询有五列或更少,您就会遇到问题。

关于java - 从数据库填充表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6552005/

相关文章:

java - JOptionPane 无法显示所有内容

java - PaintComponent 自己进行绘画

java - 不一致的 Java Swing JFrame 大小

java - 将对象添加到集合中

java - 将图像上传到 Google Cloud Storage (Java)

java - eclipse:未使用的私有(private)方法没有警告

java - 将架构名称添加到 Spring 数据中的实体?

java - 自定义 WebDriver 无法与 Selenium Actions 方法交互

oracle - 选择具有特定值的行之后的所有行而不重复相同的子查询

oracle - PlSql Translate函数问题