public class

SqlLobValue

extends Object
implements DisposableSqlTypeValue
java.lang.Object
   ↳ org.springframework.jdbc.core.support.SqlLobValue

Class Overview

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. Objects of this class are immutable except for the LobCreator reference. Use them and discard them.

This class holds a reference to a LocCreator that must be closed after the update has completed. This is done via a call to the closeLobCreator 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});
 

Summary

[Expand]
Inherited Constants
From interface org.springframework.jdbc.core.SqlTypeValue
Public Constructors
SqlLobValue(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(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.
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.
Public Methods
void cleanup()
Close the LobCreator, if any.
void setTypeValue(PreparedStatement ps, int paramIndex, int sqlType, String typeName)
Set the specified content via the LobCreator.
[Expand]
Inherited Methods
From class java.lang.Object
From interface org.springframework.jdbc.core.DisposableSqlTypeValue
From interface org.springframework.jdbc.core.SqlTypeValue

Public Constructors

public SqlLobValue (byte[] bytes)

Create a new BLOB value with the given byte array, using a DefaultLobHandler.

Parameters
bytes the byte array containing the BLOB value

public SqlLobValue (byte[] bytes, LobHandler lobHandler)

Create a new BLOB value with the given byte array.

Parameters
bytes the byte array containing the BLOB value
lobHandler the LobHandler to be used

public SqlLobValue (String content)

Create a new CLOB value with the given content string, using a DefaultLobHandler.

Parameters
content the String containing the CLOB value

public SqlLobValue (String content, LobHandler lobHandler)

Create a new CLOB value with the given content string.

Parameters
content the String containing the CLOB value
lobHandler the LobHandler to be used

public SqlLobValue (InputStream stream, int length)

Create a new BLOB/CLOB value with the given stream, using a DefaultLobHandler.

Parameters
stream the stream containing the LOB value
length the length of the LOB value

public SqlLobValue (InputStream stream, int length, LobHandler lobHandler)

Create a new BLOB/CLOB value with the given stream.

Parameters
stream the stream containing the LOB value
length the length of the LOB value
lobHandler the LobHandler to be used

public SqlLobValue (Reader reader, int length)

Create a new CLOB value with the given character stream, using a DefaultLobHandler.

Parameters
reader the character stream containing the CLOB value
length the length of the CLOB value

public SqlLobValue (Reader reader, int length, LobHandler lobHandler)

Create a new CLOB value with the given character stream.

Parameters
reader the character stream containing the CLOB value
length the length of the CLOB value
lobHandler the LobHandler to be used

Public Methods

public void cleanup ()

Close the LobCreator, if any.

public void setTypeValue (PreparedStatement ps, int paramIndex, int sqlType, String typeName)

Set the specified content via the LobCreator.

Parameters
ps the PreparedStatement to work on
paramIndex the index of the parameter for which we need to set the value
sqlType SQL type of the parameter we are setting
typeName the type name of the parameter (optional)
Throws
SQLException