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

java.lang.Object
  extended byorg.springframework.jdbc.support.lob.OracleLobHandler.OracleLobCreator
All Implemented Interfaces:
LobCreator
Enclosing class:
OracleLobHandler

protected class OracleLobHandler.OracleLobCreator
extends java.lang.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  java.lang.Object createLob(java.sql.PreparedStatement ps, java.lang.Class lobClass, OracleLobHandler.LobCallback callback)
          Create a LOB instance for the given PreparedStatement, populating it via the given callback.
protected  java.sql.Connection getOracleConnection(java.sql.PreparedStatement ps)
          Retrieve the underlying OracleConnection, using a NativeJdbcExtractor if set.
protected  java.lang.Object prepareLob(java.sql.Connection con, java.lang.Class lobClass)
          Create and open an oracle.sql.BLOB/CLOB instance via reflection.
 void setBlobAsBinaryStream(java.sql.PreparedStatement ps, int parameterIndex, java.io.InputStream binaryStream, int contentLength)
          Set the given content as binary stream on the given statement, using the given parameter index.
 void setBlobAsBytes(java.sql.PreparedStatement ps, int parameterIndex, byte[] content)
          Set the given content as bytes on the given statement, using the given parameter index.
 void setClobAsAsciiStream(java.sql.PreparedStatement ps, int parameterIndex, java.io.InputStream asciiStream, int contentLength)
          Set the given content as ASCII stream on the given statement, using the given parameter index.
 void setClobAsCharacterStream(java.sql.PreparedStatement ps, int parameterIndex, java.io.Reader characterStream, int contentLength)
          Set the given content as character stream on the given statement, using the given parameter index.
 void setClobAsString(java.sql.PreparedStatement ps, int parameterIndex, java.lang.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(java.sql.PreparedStatement ps,
                           int parameterIndex,
                           byte[] content)
                    throws java.sql.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
parameterIndex - the parameter index to use
content - the content as byte array
Throws:
java.sql.SQLException - if thrown by JDBC methods
See Also:
PreparedStatement.setBytes(int, byte[])

setBlobAsBinaryStream

public void setBlobAsBinaryStream(java.sql.PreparedStatement ps,
                                  int parameterIndex,
                                  java.io.InputStream binaryStream,
                                  int contentLength)
                           throws java.sql.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
parameterIndex - the parameter index to use
binaryStream - the content as InputStream
Throws:
java.sql.SQLException - if thrown by JDBC methods
See Also:
PreparedStatement.setBinaryStream(int, java.io.InputStream, int)

setClobAsString

public void setClobAsString(java.sql.PreparedStatement ps,
                            int parameterIndex,
                            java.lang.String content)
                     throws java.sql.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
parameterIndex - the parameter index to use
content - the content as byte array
Throws:
java.sql.SQLException - if thrown by JDBC methods
See Also:
PreparedStatement.setBytes(int, byte[])

setClobAsAsciiStream

public void setClobAsAsciiStream(java.sql.PreparedStatement ps,
                                 int parameterIndex,
                                 java.io.InputStream asciiStream,
                                 int contentLength)
                          throws java.sql.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
parameterIndex - the parameter index to use
asciiStream - the content as InputStream
Throws:
java.sql.SQLException - if thrown by JDBC methods
See Also:
PreparedStatement.setBinaryStream(int, java.io.InputStream, int)

setClobAsCharacterStream

public void setClobAsCharacterStream(java.sql.PreparedStatement ps,
                                     int parameterIndex,
                                     java.io.Reader characterStream,
                                     int contentLength)
                              throws java.sql.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
parameterIndex - the parameter index to use
characterStream - the content as InputStream
Throws:
java.sql.SQLException - if thrown by JDBC methods
See Also:
PreparedStatement.setBinaryStream(int, java.io.InputStream, int)

createLob

protected java.lang.Object createLob(java.sql.PreparedStatement ps,
                                     java.lang.Class lobClass,
                                     OracleLobHandler.LobCallback callback)
                              throws java.sql.SQLException
Create a LOB instance for the given PreparedStatement, populating it via the given callback.

Throws:
java.sql.SQLException

getOracleConnection

protected java.sql.Connection getOracleConnection(java.sql.PreparedStatement ps)
                                           throws java.sql.SQLException,
                                                  java.lang.ClassNotFoundException
Retrieve the underlying OracleConnection, using a NativeJdbcExtractor if set.

Throws:
java.sql.SQLException
java.lang.ClassNotFoundException

prepareLob

protected java.lang.Object prepareLob(java.sql.Connection con,
                                      java.lang.Class lobClass)
                               throws java.lang.Exception
Create and open an oracle.sql.BLOB/CLOB instance via reflection.

Throws:
java.lang.Exception

close

public void close()
Free all temporary BLOBs and CLOBs created by this creator.

Specified by:
close in interface LobCreator


Copyright (C) 2003-2004 The Spring Framework Project.