我正在Java中尝试测试一个ResultSet返回的列被转换成原始类型int时是否为null。
int iVal;
ResultSet rs = magicallyAppearingStmt.executeQuery(query);
if (rs.next()) {
if (rs.getObject("ID_PARENT") != null && !rs.wasNull()) {
iVal = rs.getInt("ID_PARENT");
}
}
从上述代码片段中,有更好的方法来做到这一点吗?我认为第二个wasNull()测试是多余的。
请给我们讲解一下,谢谢。
SELECT
语句中加入IF(colName = NULL, 0, colName) AS colName
(最好是在存储过程中)。从哲学上讲,这归结于数据库是否应该符合应用程序,还是反之。由于SQL轻松处理NULL,并且许多SQL消费者不处理NULL(例如java.sql.ResultSet
),因此我选择尽可能在数据库中处理它。(当然,这假设在概念上,NULL和零对于您的目的是等效的。) - s.co.tt