org.springframework.jdbc.support.lob
Class DefaultLobHandler.DefaultLobCreator

java.lang.Object
  extended by org.springframework.jdbc.support.lob.DefaultLobHandler.DefaultLobCreator
All Implemented Interfaces:
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
protected DefaultLobHandler.DefaultLobCreator()
           
 
Method Summary
 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 LobCreator