The Spring Framework

## org.springframework.jdbc.support.lob
Class OracleLobHandler.OracleLobCreator

    java.lang.Object
      org.springframework.jdbc.support.lob.OracleLobHandler.OracleLobCreator

All Implemented Interfaces:
  LobCreator

Enclosing class:
  OracleLobHandler

    protected class OracleLobHandler.OracleLobCreator

extends Object
implements LobCreator

LobCreator implementation for Oracle databases. Creates Oracle-style temporary BLOBs and CLOBs that it frees on close.

See Also:
  `close()`

Constructor Summary
`protected` `OracleLobHandler.OracleLobCreator()`

Method Summary
`void` `close()` Free all temporary BLOBs and CLOBs created by this creator.
`protected Object` `createLob(PreparedStatement ps, boolean clob, OracleLobHandler.LobCallback callback)` Create a LOB instance for the given PreparedStatement, populating it via the given callback.
`protected Connection` `getOracleConnection(PreparedStatement ps)` Retrieve the underlying OracleConnection, using a NativeJdbcExtractor if set.
`protected Object` `prepareLob(Connection con, Class lobClass)` Create and open an oracle.sql.BLOB/CLOB instance via reflection.
`void` `setBlobAsBinaryStream(PreparedStatement ps, int paramIndex, InputStream binaryStream, int contentLength)` Set the given content as binary stream on the given statement, using the given parameter index.
`void` `setBlobAsBytes(PreparedStatement ps, int paramIndex, byte[] content)` Set the given content as bytes on the given statement, using the given parameter index.
`void` `setClobAsAsciiStream(PreparedStatement ps, int paramIndex, InputStream asciiStream, int contentLength)` Set the given content as ASCII stream on the given statement, using the given parameter index.
`void` `setClobAsCharacterStream(PreparedStatement ps, int paramIndex, Reader characterStream, int contentLength)` Set the given content as character stream on the given statement, using the given parameter index.
`void` `setClobAsString(PreparedStatement ps, int paramIndex, String content)` Set the given content as String on the given statement, using the given parameter index.

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

Constructor Detail

### OracleLobHandler.OracleLobCreator

    protected OracleLobHandler.OracleLobCreator()

Method Detail

### setBlobAsBytes

    public void setBlobAsBytes(PreparedStatement ps,
                               int paramIndex,
                               byte[] content)
                        throws SQLException

  Description copied from interface: `LobCreator`
  Set the given content as bytes on the given statement, using the given parameter index. Might simply invoke `PreparedStatement.setBytes` or create a Blob instance for it, depending on the database and driver.

  Specified by:
    `setBlobAsBytes` in interface `LobCreator`
  Parameters:
    `ps` - the PreparedStatement to the set the content on
    `paramIndex` - the parameter index to use
    `content` - the content as byte array, or `null` for SQL NULL
  Throws:
    `SQLException` - if thrown by JDBC methods
  See Also:
    `PreparedStatement.setBytes(int, byte[])`

### setBlobAsBinaryStream

    public void setBlobAsBinaryStream(PreparedStatement ps,
                                      int paramIndex,
                                      InputStream binaryStream,
                                      int contentLength)
                               throws SQLException

  Description copied from interface: `LobCreator`
  Set the given content as binary stream on the given statement, using the given parameter index. Might simply invoke `PreparedStatement.setBinaryStream` or create a Blob instance for it, depending on the database and driver.

  Specified by:
    `setBlobAsBinaryStream` in interface `LobCreator`
  Parameters:
    `ps` - the PreparedStatement to the set the content on
    `paramIndex` - the parameter index to use
    `binaryStream` - the content as binary stream, or `null` for SQL NULL
  Throws:
    `SQLException` - if thrown by JDBC methods
  See Also:
    `PreparedStatement.setBinaryStream(int, java.io.InputStream, int)`

### setClobAsString

    public void setClobAsString(PreparedStatement ps,
                                int paramIndex,
                                String content)
                         throws SQLException

  Description copied from interface: `LobCreator`
  Set the given content as String on the given statement, using the given parameter index. Might simply invoke `PreparedStatement.setString` or create a Clob instance for it, depending on the database and driver.

  Specified by:
    `setClobAsString` in interface `LobCreator`
  Parameters:
    `ps` - the PreparedStatement to the set the content on
    `paramIndex` - the parameter index to use
    `content` - the content as String, or `null` for SQL NULL
  Throws:
    `SQLException` - if thrown by JDBC methods
  See Also:
    `PreparedStatement.setBytes(int, byte[])`

### setClobAsAsciiStream

    public void setClobAsAsciiStream(PreparedStatement ps,
                                     int paramIndex,
                                     InputStream asciiStream,
                                     int contentLength)
                              throws SQLException

  Description copied from interface: `LobCreator`
  Set the given content as ASCII stream on the given statement, using the given parameter index. Might simply invoke `PreparedStatement.setAsciiStream` or create a Clob instance for it, depending on the database and driver.

  Specified by:
    `setClobAsAsciiStream` in interface `LobCreator`
  Parameters:
    `ps` - the PreparedStatement to the set the content on
    `paramIndex` - the parameter index to use
    `asciiStream` - the content as ASCII stream, or `null` for SQL NULL
  Throws:
    `SQLException` - if thrown by JDBC methods
  See Also:
    `PreparedStatement.setAsciiStream(int, java.io.InputStream, int)`

### setClobAsCharacterStream

    public void setClobAsCharacterStream(PreparedStatement ps,
                                         int paramIndex,
                                         Reader characterStream,
                                         int contentLength)
                                  throws SQLException

  Description copied from interface: `LobCreator`
  Set the given content as character stream on the given statement, using the given parameter index. Might simply invoke `PreparedStatement.setCharacterStream` or create a Clob instance for it, depending on the database and driver.

  Specified by:
    `setClobAsCharacterStream` in interface `LobCreator`
  Parameters:
    `ps` - the PreparedStatement to the set the content on
    `paramIndex` - the parameter index to use
    `characterStream` - the content as character stream, or `null` for SQL NULL
  Throws:
    `SQLException` - if thrown by JDBC methods
  See Also:
    `PreparedStatement.setCharacterStream(int, java.io.Reader, int)`

### createLob

    protected Object createLob(PreparedStatement ps,
                               boolean clob,
                               OracleLobHandler.LobCallback callback)
                        throws SQLException

  Create a LOB instance for the given PreparedStatement, populating it via the given callback.

  Throws:
    `SQLException`

### getOracleConnection

    protected Connection getOracleConnection(PreparedStatement ps)
                                      throws SQLException,
                                             ClassNotFoundException

  Retrieve the underlying OracleConnection, using a NativeJdbcExtractor if set.

  Throws:
    `SQLException`
    `ClassNotFoundException`

### prepareLob

    protected Object prepareLob(Connection con,
                                Class lobClass)
                         throws Exception

  Create and open an oracle.sql.BLOB/CLOB instance via reflection.

  Throws:
    `Exception`

### close

    public void close()

  Free all temporary BLOBs and CLOBs created by this creator.

  Specified by:
    `close` in interface `LobCreator`

The Spring Framework

Copyright © 2002-2008 The Spring Framework.