@@ -220,20 +220,28 @@ de objetos de Java, Por ejemplo, podríamos hacer esto:
220220 .. important :: Obsérvese que tiene que ser el programador el que traduzca el modelo
221221 relacional al modelo de objetos, tal como adelantamos en la introducción.
222222
223- .. tip :: El valor de un campo puede ser ``NULL``. Cuando se recupera una cadena
224- (``.getString ``) esto no es un problema, porque `` String `` puede ser
225- `` null ``. En cambio, `` getInt `` es incapaz de devolver ``null ``, aunque el
226- campo no tenga valor, y se verá obligado a devolver **0 **. Esto no será un
227- problema cuando ** 0 ** no sea un valor válido (como en el ejemplo, ya que a
228- los identificadores no se les suele asignar valor ** 0 **), pero, cuando sea un
229- valor válido, debe existir una forma de distinguir el ** 0 ** del valor nulo :
223+ .. caution :: Los métodos ``.getInt``, ``.getLong``, etc. devuelven tipos
224+ primitivos (``int ``, `` long ``, etc.) por lo que cuando en la base de datos el
225+ valor del campo es `` NULL ``, con incapaces de devolver ``null `` y devuelven
226+ el valor predeterminado del primitivo (p.ej. ejemplo, **0 ** en caso de
227+ `` int `` o `` long ``). Si necesitamos diferenciar el valor predeterminado del
228+ valor nulo, hay dos estrategias. Una consiste en seguir usando estos métodos
229+ y preguntar luego si el valor era realmente `` NULL `` :
230230
231231 .. code-block :: java
232232 : emphasize- lines: 3
233233
234234 // Suponiendo que se permita que el campo "edad" sea nulo.
235- Integer edad = rs. getInt(" edad" );
236- if (edad == 0 && rs. wasNull()) edad = null ;
235+ Integer edad = rs. getInt(" edad" ); // si es nulo, edad valdrá 0.
236+ if (rs. wasNull()) edad = null ;
237+
238+ La segunda estrategia es usar ``.getObject `` especificando la clase en la que
239+ se quiere convertir el dato:
240+
241+ .. code-block :: java
242+
243+ Integer edad = rs. getObject(" edad" , Integer . class);
244+
237245
238246 .. _conn-preparedstatement :
239247
0 commit comments