Interface SqlXmlHandler

All Known Implementing Classes:
Jdbc4SqlXmlHandler

public interface SqlXmlHandler
Abstraction for handling XML fields in specific databases. Its main purpose is to isolate database-specific handling of XML stored in the database.

JDBC 4.0 introduces the new data type java.sql.SQLXML but most databases and their drivers currently rely on database-specific data types and features.

Provides accessor methods for XML fields and acts as factory for SqlXmlValue instances.

Since:
2.5.5
Author:
Thomas Risberg
See Also:
  • Method Details

    • getXmlAsString

      @Nullable String getXmlAsString(ResultSet rs, String columnName) throws SQLException
      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.

      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:
    • getXmlAsString

      @Nullable String getXmlAsString(ResultSet rs, int columnIndex) throws SQLException
      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.

      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:
    • getXmlAsBinaryStream

      @Nullable InputStream getXmlAsBinaryStream(ResultSet rs, String columnName) throws SQLException
      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.

      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:
    • getXmlAsBinaryStream

      @Nullable InputStream getXmlAsBinaryStream(ResultSet rs, int columnIndex) throws SQLException
      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.

      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:
    • getXmlAsCharacterStream

      @Nullable Reader getXmlAsCharacterStream(ResultSet rs, String columnName) throws SQLException
      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.

      Parameters:
      rs - the ResultSet to retrieve the content from
      columnName - the column name to use
      Returns:
      the content as character stream, or null in case of SQL NULL
      Throws:
      SQLException - if thrown by JDBC methods
      See Also:
    • getXmlAsCharacterStream

      @Nullable Reader getXmlAsCharacterStream(ResultSet rs, int columnIndex) throws SQLException
      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.

      Parameters:
      rs - the ResultSet to retrieve the content from
      columnIndex - the column index to use
      Returns:
      the content as character stream, or null in case of SQL NULL
      Throws:
      SQLException - if thrown by JDBC methods
      See Also:
    • getXmlAsSource

      @Nullable Source getXmlAsSource(ResultSet rs, String columnName, @Nullable Class<? extends Source> sourceClass) throws SQLException
      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.

      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, or null in case of SQL NULL
      Throws:
      SQLException - if thrown by JDBC methods
      See Also:
    • getXmlAsSource

      @Nullable Source getXmlAsSource(ResultSet rs, int columnIndex, @Nullable Class<? extends Source> sourceClass) throws SQLException
      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.

      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, or null in case of SQL NULL
      Throws:
      SQLException - if thrown by JDBC methods
      See Also:
    • newSqlXmlValue

      SqlXmlValue newSqlXmlValue(String value)
      Create a SqlXmlValue instance for the given XML data, as supported by the underlying JDBC driver.
      Parameters:
      value - the XML String value providing XML data
      Returns:
      the implementation specific instance
      See Also:
    • newSqlXmlValue

      SqlXmlValue newSqlXmlValue(XmlBinaryStreamProvider provider)
      Create a SqlXmlValue instance for the given XML data, as supported by the underlying JDBC driver.
      Parameters:
      provider - the XmlBinaryStreamProvider providing XML data
      Returns:
      the implementation specific instance
      See Also:
    • newSqlXmlValue

      SqlXmlValue newSqlXmlValue(XmlCharacterStreamProvider provider)
      Create a SqlXmlValue instance for the given XML data, as supported by the underlying JDBC driver.
      Parameters:
      provider - the XmlCharacterStreamProvider providing XML data
      Returns:
      the implementation specific instance
      See Also:
    • newSqlXmlValue

      SqlXmlValue newSqlXmlValue(Class<? extends Result> resultClass, XmlResultProvider provider)
      Create a SqlXmlValue instance for the given XML data, as supported by the underlying JDBC driver.
      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:
    • newSqlXmlValue

      SqlXmlValue newSqlXmlValue(Document doc)
      Create a SqlXmlValue instance for the given XML data, as supported by the underlying JDBC driver.
      Parameters:
      doc - the XML Document to be used
      Returns:
      the implementation specific instance
      See Also: