我有一个程序,可以通过JTable将数据输入数据库。 我希望最多可以输入10个单词/定义组合。 如果我想输入的值少于该值,则单元格在那里,但是当程序将信息保存到数据库中时,这对程序没有影响。

我有以下设置:

2列:单词和定义和10行:10个不同的单词和定义组合

我能够通过下面的代码来完成一行代码的工作。 我将0和1硬编码为y坐标,以从两列中获取信息。 但是,我希望能够输入多个单词/定义(即输入多行数据,然后保存它们)。 因此,我在下面编写了代码,但是在if loop中,我不断收到null pointer exception 我已经手工绘制了坐标,确保检查单元格是否为空,并使用调试器确定异常在哪里弹出。 当它看到第一个空行是好的,因为我不想保存空白条目时,它就出现了,但是如果我要检查该单元格是否为空,那么我就不会出现此错误。 它应该跳过它,然后尝试下一行。 谁能解释为什么会这样?

谢谢

public void updateDB() throws SQLException {
        Connection con = DriverManager.getConnection("jdbc:derby://localhost:1527/brainstormer", "me", "me");
        Statement stmt = con.createStatement();
        for (int i = 0; i < 2; i++) {
            for (int j = 0; j < 11; j++) {
                if (!" ".equals(glossary.getValueAt(j, i).toString())) {
                    String word = glossary.getValueAt(j, i).toString();
                    String definition = glossary.getValueAt(j, i).toString();
                    stmt.executeUpdate("INSERT INTO APP.GLOSSARY VALUES('" + word + "','" + definition + "')");

                }
            }
        }
    }

===============>>#1 票数:0 已采纳

进行空检查以避免NullPointerException ,如下所示:

if (glossary.getValueAt(j, i) != null 
       && glossary.getValueAt(j, i).toString().trim().length() != 0) {...}

  ask by JustBlossom translate from so

未解决问题?本站智能推荐: