我有一个程序,我可以通过JTable将数据输入数据库。我希望能够输入最多10个单词/定义组合。如果我想输入少于那个,那么单元格就在那里,但是当它保存数据库中的信息时,这不应该对程序产生影响。
我有以下设置:
2列:单词和定义& 10行:10种不同的单词和定义组合
我能够让下面的代码完成一行。我将0和1硬编码到y坐标中以从两列中获取信息。但是,我希望能够输入多个单词/定义(即输入多行数据然后保存它们)。所以,我编写了下面的代码,但我在null pointer exception
处得到if loop
。我已经手动绘制了坐标,确保检查单元格是否为空并使用调试器找出异常弹出的位置。它看到第一个空行是好的,因为我不想保存空白条目,但如果我检查单元格是否为空,我不应该收到此错误。它应该跳过它并尝试下一个单元格。任何人都可以解释为什么会发生这种情况吗?
由于
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 + "')");
}
}
}
}
答案 0 :(得分:0)
进行空检查以避免NullPointerException
,如下所示:
if (glossary.getValueAt(j, i) != null
&& glossary.getValueAt(j, i).toString().trim().length() != 0) {...}