Saltar al contenido

Comprobación de un valor int nulo de un ResultSet de Java

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)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *