Class OracleLobHandler.OracleLobCreator
- java.lang.Object
- org.springframework.jdbc.support.lob.OracleLobHandler.OracleLobCreator
- All Implemented Interfaces:
Closeable
,AutoCloseable
,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
Constructors Modifier Constructor Description protected
OracleLobCreator()
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description 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.
Constructor Detail
OracleLobCreator
protected 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 invokePreparedStatement.setBytes
or create a Blob instance for it, depending on the database and driver.- Specified by:
setBlobAsBytes
in interfaceLobCreator
- Parameters:
ps
- the PreparedStatement to the set the content onparamIndex
- the parameter index to usecontent
- the content as byte array, ornull
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 invokePreparedStatement.setBinaryStream
or create a Blob instance for it, depending on the database and driver.- Specified by:
setBlobAsBinaryStream
in interfaceLobCreator
- Parameters:
ps
- the PreparedStatement to the set the content onparamIndex
- the parameter index to usebinaryStream
- the content as binary stream, ornull
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 invokePreparedStatement.setString
or create a Clob instance for it, depending on the database and driver.- Specified by:
setClobAsString
in interfaceLobCreator
- Parameters:
ps
- the PreparedStatement to the set the content onparamIndex
- the parameter index to usecontent
- the content as String, ornull
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 invokePreparedStatement.setAsciiStream
or create a Clob instance for it, depending on the database and driver.- Specified by:
setClobAsAsciiStream
in interfaceLobCreator
- Parameters:
ps
- the PreparedStatement to the set the content onparamIndex
- the parameter index to useasciiStream
- the content as ASCII stream, ornull
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 invokePreparedStatement.setCharacterStream
or create a Clob instance for it, depending on the database and driver.- Specified by:
setClobAsCharacterStream
in interfaceLobCreator
- Parameters:
ps
- the PreparedStatement to the set the content onparamIndex
- the parameter index to usecharacterStream
- the content as character stream, ornull
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.
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 interfaceAutoCloseable
- Specified by:
close
in interfaceCloseable
- Specified by:
close
in interfaceLobCreator