public class TemporaryLobCreator extends Object implements LobCreator
LobCreator
implementation based on temporary LOBs,
using JDBC 4.0's Connection.createBlob()
/
Connection.createClob()
mechanism.
Used by DefaultLobHandler's DefaultLobHandler.setCreateTemporaryLob(boolean)
mode.
Can also be used directly to reuse the tracking and freeing of temporary LOBs.
DefaultLobHandler.setCreateTemporaryLob(boolean)
,
Connection.createBlob()
,
Connection.createClob()
Constructor and Description |
---|
TemporaryLobCreator() |
Modifier and Type | Method and Description |
---|---|
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.
|
protected static final Log logger
public void setBlobAsBytes(PreparedStatement ps, int paramIndex, byte[] content) throws SQLException
LobCreator
PreparedStatement.setBytes
or create a Blob instance for it, depending on the database and driver.setBlobAsBytes
in interface LobCreator
ps
- the PreparedStatement to the set the content onparamIndex
- the parameter index to usecontent
- the content as byte array, or null
for SQL NULLSQLException
- if thrown by JDBC methodsPreparedStatement.setBytes(int, byte[])
public void setBlobAsBinaryStream(PreparedStatement ps, int paramIndex, InputStream binaryStream, int contentLength) throws SQLException
LobCreator
PreparedStatement.setBinaryStream
or create a Blob instance for it, depending on the database and driver.setBlobAsBinaryStream
in interface LobCreator
ps
- the PreparedStatement to the set the content onparamIndex
- the parameter index to usebinaryStream
- the content as binary stream, or null
for SQL NULLSQLException
- if thrown by JDBC methodsPreparedStatement.setBinaryStream(int, java.io.InputStream, int)
public void setClobAsString(PreparedStatement ps, int paramIndex, String content) throws SQLException
LobCreator
PreparedStatement.setString
or create a Clob instance for it, depending on the database and driver.setClobAsString
in interface LobCreator
ps
- the PreparedStatement to the set the content onparamIndex
- the parameter index to usecontent
- the content as String, or null
for SQL NULLSQLException
- if thrown by JDBC methodsPreparedStatement.setBytes(int, byte[])
public void setClobAsAsciiStream(PreparedStatement ps, int paramIndex, InputStream asciiStream, int contentLength) throws SQLException
LobCreator
PreparedStatement.setAsciiStream
or create a Clob instance for it, depending on the database and driver.setClobAsAsciiStream
in interface LobCreator
ps
- the PreparedStatement to the set the content onparamIndex
- the parameter index to useasciiStream
- the content as ASCII stream, or null
for SQL NULLSQLException
- if thrown by JDBC methodsPreparedStatement.setAsciiStream(int, java.io.InputStream, int)
public void setClobAsCharacterStream(PreparedStatement ps, int paramIndex, Reader characterStream, int contentLength) throws SQLException
LobCreator
PreparedStatement.setCharacterStream
or create a Clob instance for it, depending on the database and driver.setClobAsCharacterStream
in interface LobCreator
ps
- the PreparedStatement to the set the content onparamIndex
- the parameter index to usecharacterStream
- the content as character stream, or null
for SQL NULLSQLException
- if thrown by JDBC methodsPreparedStatement.setCharacterStream(int, java.io.Reader, int)
public void close()
LobCreator
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.
close
in interface Closeable
close
in interface AutoCloseable
close
in interface LobCreator