通过JTable单元格出现空指针异常



我有一个程序,可以通过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 + "')");
                }
            }
        }
    }

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

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

最新更新