org.springframework.jdbc.support.lob.LobCreator |
Known Indirect Subclasses |
Interface that abstracts potentially database-specific creation of large binary
fields and large text fields. Does not work with java.sql.Blob
and java.sql.Clob
instances in the API, as some JDBC drivers
do not support these types as such.
The LOB creation part is where LobHandler
implementations usually
differ. Possible strategies include usage of
PreparedStatement.setBinaryStream/setCharacterStream
but also
PreparedStatement.setBlob/setClob
with either a stream argument
(requires JDBC 4.0) or java.sql.Blob/Clob
wrapper objects.
A LobCreator represents a session for creating BLOBs: It is not thread-safe and needs to be instantiated for each statement execution or for each transaction. Each LobCreator needs to be closed after completion.
For convenient working with a PreparedStatement and a LobCreator,
consider using JdbcTemplate
with an
AbstractLobCreatingPreparedStatementCallback
implementation. See the latter's javadoc for details.
Public Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Close this LobCreator session and free its temporarily created BLOBs and CLOBs.
| |||||||||||
Set the given content as binary stream on the given statement, using the given
parameter index.
| |||||||||||
Set the given content as bytes on the given statement, using the given
parameter index.
| |||||||||||
Set the given content as ASCII stream on the given statement, using the given
parameter index.
| |||||||||||
Set the given content as character stream on the given statement, using the given
parameter index.
| |||||||||||
Set the given content as String on the given statement, using the given
parameter index.
|
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.
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.
ps | the PreparedStatement to the set the content on |
---|---|
paramIndex | the parameter index to use |
contentStream | the content as binary stream, or null for SQL NULL |
SQLException | if thrown by JDBC methods |
---|
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.
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 |
SQLException | if thrown by JDBC methods |
---|
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.
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 |
SQLException | if thrown by JDBC methods |
---|
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.
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 |
SQLException | if thrown by JDBC methods |
---|
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.
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 |
SQLException | if thrown by JDBC methods |
---|