En Java, estoy tratando de probar un valor nulo, desde un ResultSet, donde la columna se está convirtiendo en un tipo int primitivo .
int iVal;
ResultSet rs = magicallyAppearingStmt.executeQuery(query);
if (rs.next()) {
if (rs.getObject("ID_PARENT") != null && !rs.wasNull()) {
iVal = rs.getInt("ID_PARENT");
}
}
Desde el fragmento de código anterior, ¿hay una mejor manera de hacer esto, y supongo que la segunda prueba wasNull () es redundante?
Edúcanos y gracias
IF(colName = NULL, 0, colName) AS colName
en la SELECT
declaración (preferiblemente en un proceso almacenado). Filosóficamente, esto se reduce a si la base de datos debe ajustarse a la aplicación, o viceversa. Dado que SQL maneja NULLs fácilmente y muchos consumidores de SQL no lo hacen (es decir java.sql.ResultSet
), opto por manejarlo en la base de datos cuando sea posible. (Esto, por supuesto, supone que conceptualmente NULL y zero son equivalentes para sus propósitos.)