在Java中,我试图从ResultSet中测试是否为空值,在ResultSet中,该列将被强制转换为原始int类型。
int iVal;
ResultSet rs = magicallyAppearingStmt.executeQuery(query);
if (rs.next()) {
if (rs.getObject("ID_PARENT") != null && !rs.wasNull()) {
iVal = rs.getInt("ID_PARENT");
}
}
从上面的代码片段中,是否有更好的方法可以做到这一点,并且我认为第二个wasNull()测试是多余的?
教育我们,谢谢
IF(colName = NULL, 0, colName) AS colName
在SELECT
声明中(最好是在一个存储过程)。从哲学上讲,这取决于数据库是否应符合应用程序,反之亦然。由于SQL可以轻松处理NULL,而许多SQL使用者却不这样(即java.sql.ResultSet
),因此我选择尽可能在DB上处理它。(当然,从概念上来说,NULL和零就等于您的目的。)