Class SqlLobValue
java.lang.Object
org.springframework.jdbc.core.support.SqlLobValue
- All Implemented Interfaces:
DisposableSqlTypeValue
,SqlTypeValue
Object to represent an SQL BLOB/CLOB value parameter. BLOBs can either be an
InputStream or a byte array. CLOBs can be in the form of a Reader, InputStream,
or String. Each CLOB/BLOB value will be stored together with its length.
The type is based on which constructor is used. Instances of this class are
stateful and immutable: use them and discard them.
This class holds a reference to a LobCreator
that must be closed after
the update has completed. This is done via a call to the cleanup()
method.
All handling of the LobCreator
is done by the framework classes that use it -
no need to set or close the LobCreator
for end users of this class.
A usage example:
JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource); // reusable object LobHandler lobHandler = new DefaultLobHandler(); // reusable object jdbcTemplate.update( "INSERT INTO imagedb (image_name, content, description) VALUES (?, ?, ?)", new Object[] { name, new SqlLobValue(contentStream, contentLength, lobHandler), new SqlLobValue(description, lobHandler) }, new int[] {Types.VARCHAR, Types.BLOB, Types.CLOB});
- Since:
- 1.1
- Author:
- Thomas Risberg, Juergen Hoeller
- See Also:
-
Field Summary
Fields inherited from interface org.springframework.jdbc.core.SqlTypeValue
TYPE_UNKNOWN
-
Constructor Summary
ConstructorDescriptionSqlLobValue
(byte[] bytes) Create a new BLOB value with the given byte array, using a DefaultLobHandler.SqlLobValue
(byte[] bytes, LobHandler lobHandler) Create a new BLOB value with the given byte array.SqlLobValue
(InputStream stream, int length) Create a new BLOB/CLOB value with the given stream, using a DefaultLobHandler.SqlLobValue
(InputStream stream, int length, LobHandler lobHandler) Create a new BLOB/CLOB value with the given stream.SqlLobValue
(Reader reader, int length) Create a new CLOB value with the given character stream, using a DefaultLobHandler.SqlLobValue
(Reader reader, int length, LobHandler lobHandler) Create a new CLOB value with the given character stream.SqlLobValue
(String content) Create a new CLOB value with the given content string, using a DefaultLobHandler.SqlLobValue
(String content, LobHandler lobHandler) Create a new CLOB value with the given content string. -
Method Summary
Modifier and TypeMethodDescriptionvoid
cleanup()
Close the LobCreator, if any.void
setTypeValue
(PreparedStatement ps, int paramIndex, int sqlType, String typeName) Set the specified content via the LobCreator.
-
Constructor Details
-
SqlLobValue
Create a new BLOB value with the given byte array, using a DefaultLobHandler.- Parameters:
bytes
- the byte array containing the BLOB value- See Also:
-
SqlLobValue
Create a new BLOB value with the given byte array.- Parameters:
bytes
- the byte array containing the BLOB valuelobHandler
- the LobHandler to be used
-
SqlLobValue
Create a new CLOB value with the given content string, using a DefaultLobHandler.- Parameters:
content
- the String containing the CLOB value- See Also:
-
SqlLobValue
Create a new CLOB value with the given content string.- Parameters:
content
- the String containing the CLOB valuelobHandler
- the LobHandler to be used
-
SqlLobValue
Create a new BLOB/CLOB value with the given stream, using a DefaultLobHandler.- Parameters:
stream
- the stream containing the LOB valuelength
- the length of the LOB value- See Also:
-
SqlLobValue
Create a new BLOB/CLOB value with the given stream.- Parameters:
stream
- the stream containing the LOB valuelength
- the length of the LOB valuelobHandler
- the LobHandler to be used
-
SqlLobValue
Create a new CLOB value with the given character stream, using a DefaultLobHandler.- Parameters:
reader
- the character stream containing the CLOB valuelength
- the length of the CLOB value- See Also:
-
SqlLobValue
Create a new CLOB value with the given character stream.- Parameters:
reader
- the character stream containing the CLOB valuelength
- the length of the CLOB valuelobHandler
- the LobHandler to be used
-
-
Method Details
-
setTypeValue
public void setTypeValue(PreparedStatement ps, int paramIndex, int sqlType, @Nullable String typeName) throws SQLException Set the specified content via the LobCreator.- Specified by:
setTypeValue
in interfaceSqlTypeValue
- Parameters:
ps
- the PreparedStatement to work onparamIndex
- the index of the parameter for which we need to set the valuesqlType
- the SQL type of the parameter we are settingtypeName
- the type name of the parameter (optional)- Throws:
SQLException
- if an SQLException is encountered while setting parameter values- See Also:
-
cleanup
public void cleanup()Close the LobCreator, if any.- Specified by:
cleanup
in interfaceDisposableSqlTypeValue
- See Also:
-