Class SqlLobValue

  • All Implemented Interfaces:
    DisposableSqlTypeValue, SqlTypeValue

    public class SqlLobValue
    extends Object
    implements DisposableSqlTypeValue
    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});
     
    Since:
    1.1
    Author:
    Thomas Risberg, Juergen Hoeller
    See Also:
    LobHandler, LobCreator, JdbcTemplate.update(String, Object[], int[]), SqlUpdate.update(Object[]), StoredProcedure.execute(java.util.Map)
    • Constructor Detail

      • SqlLobValue

        public SqlLobValue​(@Nullable
                           byte[] bytes)
        Create a new BLOB value with the given byte array, using a DefaultLobHandler.
        Parameters:
        bytes - the byte array containing the BLOB value
        See Also:
        DefaultLobHandler
      • SqlLobValue

        public SqlLobValue​(@Nullable
                           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
      • SqlLobValue

        public SqlLobValue​(@Nullable
                           String content)
        Create a new CLOB value with the given content string, using a DefaultLobHandler.
        Parameters:
        content - the String containing the CLOB value
        See Also:
        DefaultLobHandler
      • SqlLobValue

        public SqlLobValue​(@Nullable
                           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
      • SqlLobValue

        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
        See Also:
        DefaultLobHandler
      • SqlLobValue

        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
      • SqlLobValue

        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
        See Also:
        DefaultLobHandler
      • SqlLobValue

        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