## org.springframework.jdbc.support.xml
Class Jdbc4SqlXmlHandler

    java.lang.Object
      org.springframework.jdbc.support.xml.Jdbc4SqlXmlHandler

All Implemented Interfaces:
  SqlXmlHandler

    public class Jdbc4SqlXmlHandler

extends Object
implements SqlXmlHandler

Default implementation of the `SqlXmlHandler` interface. Provides database-specific implementations for storing and retrieving XML documents to and from fields in a database, relying on the JDBC 4.0 `java.sql.SQLXML` facility.

Since:
  2.5.6
Author:
  Thomas Risberg, Juergen Hoeller
See Also:
  `SQLXML`, `ResultSet.getSQLXML(int)`, `PreparedStatement.setSQLXML(int, java.sql.SQLXML)`

Constructor Summary
`Jdbc4SqlXmlHandler()`

Method Summary
`InputStream` `getXmlAsBinaryStream(ResultSet rs, int columnIndex)` Retrieve the given column as binary stream from the given ResultSet.
`InputStream` `getXmlAsBinaryStream(ResultSet rs, String columnName)` Retrieve the given column as binary stream from the given ResultSet.
`Reader` `getXmlAsCharacterStream(ResultSet rs, int columnIndex)` Retrieve the given column as character stream from the given ResultSet.
`Reader` `getXmlAsCharacterStream(ResultSet rs, String columnName)` Retrieve the given column as character stream from the given ResultSet.
`Source` `getXmlAsSource(ResultSet rs, int columnIndex, Class sourceClass)` Retrieve the given column as Source implemented using the specified source class from the given ResultSet.
`Source` `getXmlAsSource(ResultSet rs, String columnName, Class sourceClass)` Retrieve the given column as Source implemented using the specified source class from the given ResultSet.
`String` `getXmlAsString(ResultSet rs, int columnIndex)` Retrieve the given column as String from the given ResultSet.
`String` `getXmlAsString(ResultSet rs, String columnName)` Retrieve the given column as String from the given ResultSet.
`SqlXmlValue` `newSqlXmlValue(Class resultClass, XmlResultProvider provider)` Create a `SqlXmlValue` instance for the given XML data, as supported by the underlying JDBC driver.
`SqlXmlValue` `newSqlXmlValue(Document document)` Create a `SqlXmlValue` instance for the given XML data, as supported by the underlying JDBC driver.
`SqlXmlValue` `newSqlXmlValue(String value)` Create a `SqlXmlValue` instance for the given XML data, as supported by the underlying JDBC driver.
`SqlXmlValue` `newSqlXmlValue(XmlBinaryStreamProvider provider)` Create a `SqlXmlValue` instance for the given XML data, as supported by the underlying JDBC driver.
`SqlXmlValue` `newSqlXmlValue(XmlCharacterStreamProvider provider)` Create a `SqlXmlValue` instance for the given XML data, as supported by the underlying JDBC driver.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### Jdbc4SqlXmlHandler

    public Jdbc4SqlXmlHandler()

Method Detail

### getXmlAsString

    public String getXmlAsString(ResultSet rs,
                                 String columnName)
                          throws SQLException

  Description copied from interface: `SqlXmlHandler`
  Retrieve the given column as String from the given ResultSet.

  Might simply invoke `ResultSet.getString` or work with `SQLXML` or database-specific classes depending on the database and driver.

  Specified by:
    `getXmlAsString` in interface `SqlXmlHandler`
  Parameters:
    `rs` - the ResultSet to retrieve the content from
    `columnName` - the column name to use
  Returns:
    the content as String, or `null` in case of SQL NULL
  Throws:
    `SQLException` - if thrown by JDBC methods
  See Also:
    `ResultSet.getString(int)`, `ResultSet.getSQLXML(int)`

### getXmlAsString

    public String getXmlAsString(ResultSet rs,
                                 int columnIndex)
                          throws SQLException

  Description copied from interface: `SqlXmlHandler`
  Retrieve the given column as String from the given ResultSet.

  Might simply invoke `ResultSet.getString` or work with `SQLXML` or database-specific classes depending on the database and driver.

  Specified by:
    `getXmlAsString` in interface `SqlXmlHandler`
  Parameters:
    `rs` - the ResultSet to retrieve the content from
    `columnIndex` - the column index to use
  Returns:
    the content as String, or `null` in case of SQL NULL
  Throws:
    `SQLException` - if thrown by JDBC methods
  See Also:
    `ResultSet.getString(int)`, `ResultSet.getSQLXML(int)`

### getXmlAsBinaryStream

    public InputStream getXmlAsBinaryStream(ResultSet rs,
                                            String columnName)
                                     throws SQLException

  Description copied from interface: `SqlXmlHandler`
  Retrieve the given column as binary stream from the given ResultSet.

  Might simply invoke `ResultSet.getAsciiStream` or work with `SQLXML` or database-specific classes depending on the database and driver.

  Specified by:
    `getXmlAsBinaryStream` in interface `SqlXmlHandler`
  Parameters:
    `rs` - the ResultSet to retrieve the content from
    `columnName` - the column name to use
  Returns:
    the content as a binary stream, or `null` in case of SQL NULL
  Throws:
    `SQLException` - if thrown by JDBC methods
  See Also:
    `ResultSet.getSQLXML(int)`, `SQLXML.getBinaryStream()`

### getXmlAsBinaryStream

    public InputStream getXmlAsBinaryStream(ResultSet rs,
                                            int columnIndex)
                                     throws SQLException

  Description copied from interface: `SqlXmlHandler`
  Retrieve the given column as binary stream from the given ResultSet.

  Might simply invoke `ResultSet.getAsciiStream` or work with `SQLXML` or database-specific classes depending on the database and driver.

  Specified by:
    `getXmlAsBinaryStream` in interface `SqlXmlHandler`
  Parameters:
    `rs` - the ResultSet to retrieve the content from
    `columnIndex` - the column index to use
  Returns:
    the content as binary stream, or `null` in case of SQL NULL
  Throws:
    `SQLException` - if thrown by JDBC methods
  See Also:
    `ResultSet.getSQLXML(int)`, `SQLXML.getBinaryStream()`

### getXmlAsCharacterStream

    public Reader getXmlAsCharacterStream(ResultSet rs,
                                          String columnName)
                                   throws SQLException

  Description copied from interface: `SqlXmlHandler`
  Retrieve the given column as character stream from the given ResultSet.

  Might simply invoke `ResultSet.getCharacterStream` or work with `SQLXML` or database-specific classes depending on the database and driver.

  Specified by:
    `getXmlAsCharacterStream` in interface `SqlXmlHandler`
  Parameters:
    `rs` - the ResultSet to retrieve the content from
    `columnName` - the column name to use
  Returns:
    the content as character stream
  Throws:
    `SQLException` - if thrown by JDBC methods
  See Also:
    `ResultSet.getSQLXML(int)`, `SQLXML.getCharacterStream()`

### getXmlAsCharacterStream

    public Reader getXmlAsCharacterStream(ResultSet rs,
                                          int columnIndex)
                                   throws SQLException

  Description copied from interface: `SqlXmlHandler`
  Retrieve the given column as character stream from the given ResultSet.

  Might simply invoke `ResultSet.getCharacterStream` or work with `SQLXML` or database-specific classes depending on the database and driver.

  Specified by:
    `getXmlAsCharacterStream` in interface `SqlXmlHandler`
  Parameters:
    `rs` - the ResultSet to retrieve the content from
    `columnIndex` - the column index to use
  Returns:
    the content as character stream
  Throws:
    `SQLException` - if thrown by JDBC methods
  See Also:
    `ResultSet.getSQLXML(int)`, `SQLXML.getCharacterStream()`

### getXmlAsSource

    public Source getXmlAsSource(ResultSet rs,
                                 String columnName,
                                 Class sourceClass)
                          throws SQLException

  Description copied from interface: `SqlXmlHandler`
  Retrieve the given column as Source implemented using the specified source class from the given ResultSet.

  Might work with `SQLXML` or database-specific classes depending on the database and driver.

  Specified by:
    `getXmlAsSource` in interface `SqlXmlHandler`
  Parameters:
    `rs` - the ResultSet to retrieve the content from
    `columnName` - the column name to use
    `sourceClass` - the implementation class to be used
  Returns:
    the content as character stream
  Throws:
    `SQLException` - if thrown by JDBC methods
  See Also:
    `ResultSet.getSQLXML(int)`, `SQLXML.getSource(java.lang.Class<T>)`

### getXmlAsSource

    public Source getXmlAsSource(ResultSet rs,
                                 int columnIndex,
                                 Class sourceClass)
                          throws SQLException

  Description copied from interface: `SqlXmlHandler`
  Retrieve the given column as Source implemented using the specified source class from the given ResultSet.

  Might work with `SQLXML` or database-specific classes depending on the database and driver.

  Specified by:
    `getXmlAsSource` in interface `SqlXmlHandler`
  Parameters:
    `rs` - the ResultSet to retrieve the content from
    `columnIndex` - the column index to use
    `sourceClass` - the implementation class to be used
  Returns:
    the content as character stream
  Throws:
    `SQLException` - if thrown by JDBC methods
  See Also:
    `ResultSet.getSQLXML(int)`, `SQLXML.getSource(java.lang.Class<T>)`

### newSqlXmlValue

    public SqlXmlValue newSqlXmlValue(String value)

  Description copied from interface: `SqlXmlHandler`
  Create a `SqlXmlValue` instance for the given XML data, as supported by the underlying JDBC driver.

  Specified by:
    `newSqlXmlValue` in interface `SqlXmlHandler`
  Parameters:
    `value` - the XML String value providing XML data
  Returns:
    the implementation specific instance
  See Also:
    `SqlXmlValue`, `SQLXML.setString(String)`

### newSqlXmlValue

    public SqlXmlValue newSqlXmlValue(XmlBinaryStreamProvider provider)

  Description copied from interface: `SqlXmlHandler`
  Create a `SqlXmlValue` instance for the given XML data, as supported by the underlying JDBC driver.

  Specified by:
    `newSqlXmlValue` in interface `SqlXmlHandler`
  Parameters:
    `provider` - the `XmlBinaryStreamProvider` providing XML data
  Returns:
    the implementation specific instance
  See Also:
    `SqlXmlValue`, `SQLXML.setBinaryStream()`

### newSqlXmlValue

    public SqlXmlValue newSqlXmlValue(XmlCharacterStreamProvider provider)

  Description copied from interface: `SqlXmlHandler`
  Create a `SqlXmlValue` instance for the given XML data, as supported by the underlying JDBC driver.

  Specified by:
    `newSqlXmlValue` in interface `SqlXmlHandler`
  Parameters:
    `provider` - the `XmlCharacterStreamProvider` providing XML data
  Returns:
    the implementation specific instance
  See Also:
    `SqlXmlValue`, `SQLXML.setCharacterStream()`

### newSqlXmlValue

    public SqlXmlValue newSqlXmlValue(Class resultClass,
                                      XmlResultProvider provider)

  Description copied from interface: `SqlXmlHandler`
  Create a `SqlXmlValue` instance for the given XML data, as supported by the underlying JDBC driver.

  Specified by:
    `newSqlXmlValue` in interface `SqlXmlHandler`
  Parameters:
    `resultClass` - the Result implementation class to be used
    `provider` - the `XmlResultProvider` that will provide the XML data
  Returns:
    the implementation specific instance
  See Also:
    `SqlXmlValue`, `SQLXML.setResult(Class)`

### newSqlXmlValue

    public SqlXmlValue newSqlXmlValue(Document document)

  Description copied from interface: `SqlXmlHandler`
  Create a `SqlXmlValue` instance for the given XML data, as supported by the underlying JDBC driver.

  Specified by:
    `newSqlXmlValue` in interface `SqlXmlHandler`
  Parameters:
    `document` - the XML Document to be used
  Returns:
    the implementation specific instance
  See Also:
    `SqlXmlValue`