Interface LobCreator
- All Superinterfaces:
- AutoCloseable,- Closeable
- All Known Implementing Classes:
- DefaultLobHandler.DefaultLobCreator,- TemporaryLobCreator
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 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.
- Since:
- 04.12.2003
- Author:
- Juergen Hoeller
- See Also:
- 
- close()
- LobHandler.getLobCreator()
- DefaultLobHandler.DefaultLobCreator
- PreparedStatement.setBlob(int, java.sql.Blob)
- PreparedStatement.setClob(int, java.sql.Clob)
- PreparedStatement.setBytes(int, byte[])
- PreparedStatement.setBinaryStream(int, java.io.InputStream, int)
- PreparedStatement.setString(int, java.lang.String)
- PreparedStatement.setAsciiStream(int, java.io.InputStream, int)
- PreparedStatement.setCharacterStream(int, java.io.Reader, int)
 
- 
Method SummaryModifier and TypeMethodDescriptionvoidclose()Deprecated.Close this LobCreator session and free its temporarily created BLOBs and CLOBs.voidsetBlobAsBinaryStream(PreparedStatement ps, int paramIndex, InputStream contentStream, int contentLength) Deprecated.Set the given content as binary stream on the given statement, using the given parameter index.voidsetBlobAsBytes(PreparedStatement ps, int paramIndex, byte[] content) Deprecated.Set the given content as bytes on the given statement, using the given parameter index.voidsetClobAsAsciiStream(PreparedStatement ps, int paramIndex, InputStream asciiStream, int contentLength) Deprecated.Set the given content as ASCII stream on the given statement, using the given parameter index.voidsetClobAsCharacterStream(PreparedStatement ps, int paramIndex, Reader characterStream, int contentLength) Deprecated.Set the given content as character stream on the given statement, using the given parameter index.voidsetClobAsString(PreparedStatement ps, int paramIndex, String content) Deprecated.Set the given content as String on the given statement, using the given parameter index.
- 
Method Details- 
setBlobAsBytesvoid setBlobAsBytes(PreparedStatement ps, int paramIndex, @Nullable byte[] content) throws SQLException Deprecated.Set the given content as bytes on the given statement, using the given parameter index. Might simply invokePreparedStatement.setBytesor create a Blob instance for it, depending on the database and driver.- Parameters:
- ps- the PreparedStatement to the set the content on
- paramIndex- the parameter index to use
- content- the content as byte array, or- nullfor SQL NULL
- Throws:
- SQLException- if thrown by JDBC methods
- See Also:
 
- 
setBlobAsBinaryStreamvoid setBlobAsBinaryStream(PreparedStatement ps, int paramIndex, @Nullable InputStream contentStream, int contentLength) throws SQLException Deprecated.Set the given content as binary stream on the given statement, using the given parameter index. Might simply invokePreparedStatement.setBinaryStreamor create a Blob instance for it, depending on the database and driver.- Parameters:
- ps- the PreparedStatement to the set the content on
- paramIndex- the parameter index to use
- contentStream- the content as binary stream, or- nullfor SQL NULL
- Throws:
- SQLException- if thrown by JDBC methods
- See Also:
 
- 
setClobAsStringvoid setClobAsString(PreparedStatement ps, int paramIndex, @Nullable String content) throws SQLException Deprecated.Set the given content as String on the given statement, using the given parameter index. Might simply invokePreparedStatement.setStringor create a Clob instance for it, depending on the database and driver.- Parameters:
- ps- the PreparedStatement to the set the content on
- paramIndex- the parameter index to use
- content- the content as String, or- nullfor SQL NULL
- Throws:
- SQLException- if thrown by JDBC methods
- See Also:
 
- 
setClobAsAsciiStreamvoid setClobAsAsciiStream(PreparedStatement ps, int paramIndex, @Nullable InputStream asciiStream, int contentLength) throws SQLException Deprecated.Set the given content as ASCII stream on the given statement, using the given parameter index. Might simply invokePreparedStatement.setAsciiStreamor create a Clob instance for it, depending on the database and driver.- Parameters:
- ps- the PreparedStatement to the set the content on
- paramIndex- the parameter index to use
- asciiStream- the content as ASCII stream, or- nullfor SQL NULL
- Throws:
- SQLException- if thrown by JDBC methods
- See Also:
 
- 
setClobAsCharacterStreamvoid setClobAsCharacterStream(PreparedStatement ps, int paramIndex, @Nullable Reader characterStream, int contentLength) throws SQLException Deprecated.Set the given content as character stream on the given statement, using the given parameter index. Might simply invokePreparedStatement.setCharacterStreamor create a Clob instance for it, depending on the database and driver.- Parameters:
- ps- the PreparedStatement to the set the content on
- paramIndex- the parameter index to use
- characterStream- the content as character stream, or- nullfor SQL NULL
- Throws:
- SQLException- if thrown by JDBC methods
- See Also:
 
- 
closevoid close()Deprecated.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:
- closein interface- AutoCloseable
- Specified by:
- closein interface- Closeable
 
 
- 
SqlBinaryValueandSqlCharacterValue