【发布时间】:2011-08-24 21:12:24
【问题描述】:
我目前返回了一个结果集,其中一列中的字符串值可能为空(我的意思是根本没有值)。我有一个条件来实现如下
rs = st.executeQuery(selectSQL);
output = rs.getString("column");
由于该列在数据库中可能为空,当该列为空时,rs.getString() 将抛出 NullPointerException。如果列为空,我希望输出为空字符串,如output = "";。我也无法检查if(rs.getString("column) != null。我该如何应对这种情况?
我真正的问题:
try {
rs = st.executeQuery(sql);
int i = 0;
while (rs.next()) {
output[i] = rs.getString(column);
// column field in the database contains multiple results, but sometimes
// may be null
i++;
}
} catch (SQLException e) {
e.printStackTrace();
// other than tracing the exception i want to fill the array too
}
return output;
现在,如果其中一个列值不包含任何值,即 null,我希望将 output[i] 定义为 N/A。这个问题源于column 字段在数据库中允许为NULL。很抱歉告诉你这是一个 NPE,而实际上它是一个 SQLException。
【问题讨论】:
-
如果该列为 null,则 ResultSet 应返回 null。你确定 ResultSet 不为空吗?
-
通常可以调用
wasNull()方法。我不明白为什么会在这里抛出 NPE。 -
while(rs.next()){ rs.getX(); } -
我很好奇为什么这被否决了。