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

Constructors
Constructor and Description
`Jdbc4SqlXmlHandler()`

### Method Summary

Methods
`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`