Solución:
El predeterminado para ResultSet.getInt
cuando el valor del campo es NULL
es volver 0
, que también es el valor predeterminado para su iVal
declaración. En cuyo caso su prueba es completamente redundante.
Si realmente desea hacer algo diferente si el valor del campo es NULL, sugiero:
int iVal = 0;
ResultSet rs = magicallyAppearingStmt.executeQuery(query);
if (rs.next()) {
iVal = rs.getInt("ID_PARENT");
if (rs.wasNull()) {
// handle NULL field value
}
}
(Editado como @martin comenta a continuación; el código OP tal como está escrito no se compilaría porque iVal
no está inicializado)
Otra solución:
public class DaoTools {
static public Integer getInteger(ResultSet rs, String strColName) throws SQLException {
int nValue = rs.getInt(strColName);
return rs.wasNull() ? null : nValue;
}
}
Creo que es redundante. rs.getObject("ID_PARENT")
debería devolver un Integer
objeto o null
, si el valor de la columna era NULL
. Así que incluso debería ser posible hacer algo como:
if (rs.next()) {
Integer idParent = (Integer) rs.getObject("ID_PARENT");
if (idParent != null) {
iVal = idParent; // works for Java 1.5+
} else {
// handle this case
}
}
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)