org.springframework.jdbc.support.lob

## Class DefaultLobHandler.DefaultLobCreator

- java.lang.Object
- - org.springframework.jdbc.support.lob.DefaultLobHandler.DefaultLobCreator

All Implemented Interfaces:
  Closeable, AutoCloseable, LobCreator

Enclosing class:
  DefaultLobHandler

    protected class DefaultLobHandler.DefaultLobCreator
    extends Object
    implements LobCreator

Default LobCreator implementation as inner class. Can be subclassed in DefaultLobHandler extensions.

### Constructor Summary

Constructors
`protected` `DefaultLobHandler.DefaultLobCreator()`

### Method Summary

Methods
`void` `close()` Close this LobCreator session and free its temporarily created BLOBs and CLOBs.
`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

#### DefaultLobHandler.DefaultLobCreator

    protected DefaultLobHandler.DefaultLobCreator()

### 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)`

#### close

    public void close()

Description copied from interface: `LobCreator`
Close this LobCreator session and free its temporarily created BLOBs and CLOBs. Will not need to do anything if using PreparedStatement's standard methods, but might be necessary to free database resources if using proprietary means.

NOTE: Needs to be invoked after the involved PreparedStatements have been executed or the affected O/R mapping sessions have been flushed. Otherwise, the database resources for the temporary BLOBs might stay allocated.

Specified by:
  `close` in interface `Closeable`
Specified by:
  `close` in interface `AutoCloseable`
Specified by:
  `close` in interface `LobCreator`