Package org.apache.commons.dbutils.wrappers

## Class SqlNullCheckedResultSet

- java.lang.Object
- - org.apache.commons.dbutils.wrappers.SqlNullCheckedResultSet

- All Implemented Interfaces:
    `InvocationHandler`

      public class SqlNullCheckedResultSet
      extends Object
      implements InvocationHandler

  Decorates a `ResultSet` with checks for a SQL NULL value on each `getXXX` method. If a column value obtained by a `getXXX` method is not SQL NULL, the column value is returned. If the column value is SQL null, an alternate value is returned. The alternate value defaults to the Java `null` value, which can be overridden for instances of the class.

  Usage example:

  >      Connection conn = // somehow get a connection
  >      Statement stmt = conn.createStatement();
  >      ResultSet resultSet = stmt.executeQuery("SELECT col1, col2 FROM table1");

  >      // Wrap the result set for SQL NULL checking
  >      SqlNullCheckedResultSet wrapper = new SqlNullCheckedResultSet(resultSet);
  >      wrapper.setNullString("---N/A---"); // Set null string
  >      wrapper.setNullInt(-999); // Set null integer
  >      resultSet = ProxyFactory.instance().createResultSet(wrapper);

  >      while (resultSet.next()) {
  >          // If col1 is SQL NULL, value returned will be "---N/A---"
  >          String col1 = resultSet.getString("col1");
  >          // If col2 is SQL NULL, value returned will be -999
  >          int col2 = resultSet.getInt("col2");
  >      }
  >      resultSet.close();

  </p>

  Unlike some other classes in DbUtils, this class is NOT thread-safe.

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `SqlNullCheckedResultSet​(ResultSet resultSet)` | Constructs a new instance of `SqlNullCheckedResultSet` to wrap the specified `ResultSet`.

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `InputStream` | `getNullAsciiStream()` | Returns the value when a SQL null is encountered as the result of invoking a `getAsciiStream` method.
    `BigDecimal` | `getNullBigDecimal()` | Returns the value when a SQL null is encountered as the result of invoking a `getBigDecimal` method.
    `InputStream` | `getNullBinaryStream()` | Returns the value when a SQL null is encountered as the result of invoking a `getBinaryStream` method.
    `Blob` | `getNullBlob()` | Returns the value when a SQL null is encountered as the result of invoking a `getBlob` method.
    `boolean` | `getNullBoolean()` | Returns the value when a SQL null is encountered as the result of invoking a `getBoolean` method.
    `byte` | `getNullByte()` | Returns the value when a SQL null is encountered as the result of invoking a `getByte` method.
    `byte[]` | `getNullBytes()` | Returns the value when a SQL null is encountered as the result of invoking a `getBytes` method.
    `Reader` | `getNullCharacterStream()` | Returns the value when a SQL null is encountered as the result of invoking a `getCharacterStream` method.
    `Clob` | `getNullClob()` | Returns the value when a SQL null is encountered as the result of invoking a `getClob` method.
    `Date` | `getNullDate()` | Returns the value when a SQL null is encountered as the result of invoking a `getDate` method.
    `double` | `getNullDouble()` | Returns the value when a SQL null is encountered as the result of invoking a `getDouble` method.
    `float` | `getNullFloat()` | Returns the value when a SQL null is encountered as the result of invoking a `getFloat` method.
    `int` | `getNullInt()` | Returns the value when a SQL null is encountered as the result of invoking a `getInt` method.
    `long` | `getNullLong()` | Returns the value when a SQL null is encountered as the result of invoking a `getLong` method.
    `Object` | `getNullObject()` | Returns the value when a SQL null is encountered as the result of invoking a `getObject` method.
    `Ref` | `getNullRef()` | Returns the value when a SQL null is encountered as the result of invoking a `getRef` method.
    `short` | `getNullShort()` | Returns the value when a SQL null is encountered as the result of invoking a `getShort` method.
    `String` | `getNullString()` | Returns the value when a SQL null is encountered as the result of invoking a `getString` method.
    `Time` | `getNullTime()` | Returns the value when a SQL null is encountered as the result of invoking a `getTime` method.
    `Timestamp` | `getNullTimestamp()` | Returns the value when a SQL null is encountered as the result of invoking a `getTimestamp` method.
    `URL` | `getNullURL()` | Returns the value when a SQL null is encountered as the result of invoking a `getURL` method.
    `Object` | `invoke​(Object proxy, Method method, Object[] args)` | Intercepts calls to `get*` methods and calls the appropriate `getNull*` method if the `ResultSet` returned `null`.
    `void` | `setNullAsciiStream​(InputStream nullAsciiStream)` | Sets the value to return when a SQL null is encountered as the result of invoking a `getAsciiStream` method.
    `void` | `setNullBigDecimal​(BigDecimal nullBigDecimal)` | Sets the value to return when a SQL null is encountered as the result of invoking a `getBigDecimal` method.
    `void` | `setNullBinaryStream​(InputStream nullBinaryStream)` | Sets the value to return when a SQL null is encountered as the result of invoking a `getBinaryStream` method.
    `void` | `setNullBlob​(Blob nullBlob)` | Sets the value to return when a SQL null is encountered as the result of invoking a `getBlob` method.
    `void` | `setNullBoolean​(boolean nullBoolean)` | Sets the value to return when a SQL null is encountered as the result of invoking a `getBoolean` method.
    `void` | `setNullByte​(byte nullByte)` | Sets the value to return when a SQL null is encountered as the result of invoking a `getByte` method.
    `void` | `setNullBytes​(byte[] nullBytes)` | Sets the value to return when a SQL null is encountered as the result of invoking a `getBytes` method.
    `void` | `setNullCharacterStream​(Reader nullCharacterStream)` | Sets the value to return when a SQL null is encountered as the result of invoking a `getCharacterStream` method.
    `void` | `setNullClob​(Clob nullClob)` | Sets the value to return when a SQL null is encountered as the result of invoking a `getClob` method.
    `void` | `setNullDate​(Date nullDate)` | Sets the value to return when a SQL null is encountered as the result of invoking a `getDate` method.
    `void` | `setNullDouble​(double nullDouble)` | Sets the value to return when a SQL null is encountered as the result of invoking a `getDouble` method.
    `void` | `setNullFloat​(float nullFloat)` | Sets the value to return when a SQL null is encountered as the result of invoking a `getFloat` method.
    `void` | `setNullInt​(int nullInt)` | Sets the value to return when a SQL null is encountered as the result of invoking a `getInt` method.
    `void` | `setNullLong​(long nullLong)` | Sets the value to return when a SQL null is encountered as the result of invoking a `getLong` method.
    `void` | `setNullObject​(Object nullObject)` | Sets the value to return when a SQL null is encountered as the result of invoking a `getObject` method.
    `void` | `setNullRef​(Ref nullRef)` | Sets the value to return when a SQL null is encountered as the result of invoking a `getRef` method.
    `void` | `setNullShort​(short nullShort)` | Sets the value to return when a SQL null is encountered as the result of invoking a `getShort` method.
    `void` | `setNullString​(String nullString)` | Sets the value to return when a SQL null is encountered as the result of invoking a `getString` method.
    `void` | `setNullTime​(Time nullTime)` | Sets the value to return when a SQL null is encountered as the result of invoking a `getTime` method.
    `void` | `setNullTimestamp​(Timestamp nullTimestamp)` | Sets the value to return when a SQL null is encountered as the result of invoking a `getTimestamp` method.
    `void` | `setNullURL​(URL nullURL)` | Sets the value to return when a SQL null is encountered as the result of invoking a `getURL` method.
    `static ResultSet` | `wrap​(ResultSet resultSet)` | Wraps the `ResultSet` in an instance of this class.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### SqlNullCheckedResultSet

          public SqlNullCheckedResultSet​(ResultSet resultSet)

      Constructs a new instance of `SqlNullCheckedResultSet` to wrap the specified `ResultSet`.
      Parameters:
        `resultSet` - ResultSet to wrap

  - ### Method Detail

    - #### wrap

          public static ResultSet wrap​(ResultSet resultSet)

      Wraps the `ResultSet` in an instance of this class. This is equivalent to:

           ProxyFactory.instance().createResultSet(new SqlNullCheckedResultSet(resultSet));

      Parameters:
        `resultSet` - The `ResultSet` to wrap.
      Returns:
        wrapped ResultSet

    - #### getNullAsciiStream

          public InputStream getNullAsciiStream()

      Returns the value when a SQL null is encountered as the result of invoking a `getAsciiStream` method.
      Returns:
        the value

    - #### getNullBigDecimal

          public BigDecimal getNullBigDecimal()

      Returns the value when a SQL null is encountered as the result of invoking a `getBigDecimal` method.
      Returns:
        the value

    - #### getNullBinaryStream

          public InputStream getNullBinaryStream()

      Returns the value when a SQL null is encountered as the result of invoking a `getBinaryStream` method.
      Returns:
        the value

    - #### getNullBlob

          public Blob getNullBlob()

      Returns the value when a SQL null is encountered as the result of invoking a `getBlob` method.
      Returns:
        the value

    - #### getNullBoolean

          public boolean getNullBoolean()

      Returns the value when a SQL null is encountered as the result of invoking a `getBoolean` method.
      Returns:
        the value

    - #### getNullByte

          public byte getNullByte()

      Returns the value when a SQL null is encountered as the result of invoking a `getByte` method.
      Returns:
        the value

    - #### getNullBytes

          public byte[] getNullBytes()

      Returns the value when a SQL null is encountered as the result of invoking a `getBytes` method.
      Returns:
        the value

    - #### getNullCharacterStream

          public Reader getNullCharacterStream()

      Returns the value when a SQL null is encountered as the result of invoking a `getCharacterStream` method.
      Returns:
        the value

    - #### getNullClob

          public Clob getNullClob()

      Returns the value when a SQL null is encountered as the result of invoking a `getClob` method.
      Returns:
        the value

    - #### getNullDate

          public Date getNullDate()

      Returns the value when a SQL null is encountered as the result of invoking a `getDate` method.
      Returns:
        the value

    - #### getNullDouble

          public double getNullDouble()

      Returns the value when a SQL null is encountered as the result of invoking a `getDouble` method.
      Returns:
        the value

    - #### getNullFloat

          public float getNullFloat()

      Returns the value when a SQL null is encountered as the result of invoking a `getFloat` method.
      Returns:
        the value

    - #### getNullInt

          public int getNullInt()

      Returns the value when a SQL null is encountered as the result of invoking a `getInt` method.
      Returns:
        the value

    - #### getNullLong

          public long getNullLong()

      Returns the value when a SQL null is encountered as the result of invoking a `getLong` method.
      Returns:
        the value

    - #### getNullObject

          public Object getNullObject()

      Returns the value when a SQL null is encountered as the result of invoking a `getObject` method.
      Returns:
        the value

    - #### getNullRef

          public Ref getNullRef()

      Returns the value when a SQL null is encountered as the result of invoking a `getRef` method.
      Returns:
        the value

    - #### getNullShort

          public short getNullShort()

      Returns the value when a SQL null is encountered as the result of invoking a `getShort` method.
      Returns:
        the value

    - #### getNullString

          public String getNullString()

      Returns the value when a SQL null is encountered as the result of invoking a `getString` method.
      Returns:
        the value

    - #### getNullTime

          public Time getNullTime()

      Returns the value when a SQL null is encountered as the result of invoking a `getTime` method.
      Returns:
        the value

    - #### getNullTimestamp

          public Timestamp getNullTimestamp()

      Returns the value when a SQL null is encountered as the result of invoking a `getTimestamp` method.
      Returns:
        the value

    - #### getNullURL

          public URL getNullURL()

      Returns the value when a SQL null is encountered as the result of invoking a `getURL` method.
      Returns:
        the value

    - #### invoke

          public Object invoke​(Object proxy,
                               Method method,
                               Object[] args)
                        throws Throwable

      Intercepts calls to `get*` methods and calls the appropriate `getNull*` method if the `ResultSet` returned `null`.
      Specified by:
        `invoke` in interface `InvocationHandler`
      Parameters:
        `proxy` - Not used; all method calls go to the internal result set
        `method` - The method to invoke on the result set
        `args` - The arguments to pass to the result set
      Returns:
        null checked result
      Throws:
        `Throwable` - error
      See Also:
        `InvocationHandler.invoke(Object, java.lang.reflect.Method, Object[])`

    - #### setNullAsciiStream

          public void setNullAsciiStream​(InputStream nullAsciiStream)

      Sets the value to return when a SQL null is encountered as the result of invoking a `getAsciiStream` method.
      Parameters:
        `nullAsciiStream` - the value

    - #### setNullBigDecimal

          public void setNullBigDecimal​(BigDecimal nullBigDecimal)

      Sets the value to return when a SQL null is encountered as the result of invoking a `getBigDecimal` method.
      Parameters:
        `nullBigDecimal` - the value

    - #### setNullBinaryStream

          public void setNullBinaryStream​(InputStream nullBinaryStream)

      Sets the value to return when a SQL null is encountered as the result of invoking a `getBinaryStream` method.
      Parameters:
        `nullBinaryStream` - the value

    - #### setNullBlob

          public void setNullBlob​(Blob nullBlob)

      Sets the value to return when a SQL null is encountered as the result of invoking a `getBlob` method.
      Parameters:
        `nullBlob` - the value

    - #### setNullBoolean

          public void setNullBoolean​(boolean nullBoolean)

      Sets the value to return when a SQL null is encountered as the result of invoking a `getBoolean` method.
      Parameters:
        `nullBoolean` - the value

    - #### setNullByte

          public void setNullByte​(byte nullByte)

      Sets the value to return when a SQL null is encountered as the result of invoking a `getByte` method.
      Parameters:
        `nullByte` - the value

    - #### setNullBytes

          public void setNullBytes​(byte[] nullBytes)

      Sets the value to return when a SQL null is encountered as the result of invoking a `getBytes` method.
      Parameters:
        `nullBytes` - the value

    - #### setNullCharacterStream

          public void setNullCharacterStream​(Reader nullCharacterStream)

      Sets the value to return when a SQL null is encountered as the result of invoking a `getCharacterStream` method.
      Parameters:
        `nullCharacterStream` - the value

    - #### setNullClob

          public void setNullClob​(Clob nullClob)

      Sets the value to return when a SQL null is encountered as the result of invoking a `getClob` method.
      Parameters:
        `nullClob` - the value

    - #### setNullDate

          public void setNullDate​(Date nullDate)

      Sets the value to return when a SQL null is encountered as the result of invoking a `getDate` method.
      Parameters:
        `nullDate` - the value

    - #### setNullDouble

          public void setNullDouble​(double nullDouble)

      Sets the value to return when a SQL null is encountered as the result of invoking a `getDouble` method.
      Parameters:
        `nullDouble` - the value

    - #### setNullFloat

          public void setNullFloat​(float nullFloat)

      Sets the value to return when a SQL null is encountered as the result of invoking a `getFloat` method.
      Parameters:
        `nullFloat` - the value

    - #### setNullInt

          public void setNullInt​(int nullInt)

      Sets the value to return when a SQL null is encountered as the result of invoking a `getInt` method.
      Parameters:
        `nullInt` - the value

    - #### setNullLong

          public void setNullLong​(long nullLong)

      Sets the value to return when a SQL null is encountered as the result of invoking a `getLong` method.
      Parameters:
        `nullLong` - the value

    - #### setNullObject

          public void setNullObject​(Object nullObject)

      Sets the value to return when a SQL null is encountered as the result of invoking a `getObject` method.
      Parameters:
        `nullObject` - the value

    - #### setNullRef

          public void setNullRef​(Ref nullRef)

      Sets the value to return when a SQL null is encountered as the result of invoking a `getRef` method.
      Parameters:
        `nullRef` - the value

    - #### setNullShort

          public void setNullShort​(short nullShort)

      Sets the value to return when a SQL null is encountered as the result of invoking a `getShort` method.
      Parameters:
        `nullShort` - the value

    - #### setNullString

          public void setNullString​(String nullString)

      Sets the value to return when a SQL null is encountered as the result of invoking a `getString` method.
      Parameters:
        `nullString` - the value

    - #### setNullTime

          public void setNullTime​(Time nullTime)

      Sets the value to return when a SQL null is encountered as the result of invoking a `getTime` method.
      Parameters:
        `nullTime` - the value

    - #### setNullTimestamp

          public void setNullTimestamp​(Timestamp nullTimestamp)

      Sets the value to return when a SQL null is encountered as the result of invoking a `getTimestamp` method.
      Parameters:
        `nullTimestamp` - the value

    - #### setNullURL

          public void setNullURL​(URL nullURL)

      Sets the value to return when a SQL null is encountered as the result of invoking a `getURL` method.
      Parameters:
        `nullURL` - the value