Class AbstractLobStreamingResultSetExtractor<T>

java.lang.Object
org.springframework.jdbc.core.support.AbstractLobStreamingResultSetExtractor<T>
Type Parameters:
T - the result type
All Implemented Interfaces:
ResultSetExtractor<T>

public abstract class AbstractLobStreamingResultSetExtractor<T> extends Object implements ResultSetExtractor<T>
Abstract ResultSetExtractor implementation that assumes streaming of LOB data. Typically used as inner class, with access to surrounding method arguments.

Delegates to the streamData template method for streaming LOB content to some OutputStream, typically using a LobHandler. Converts an IOException thrown during streaming to a LobRetrievalFailureException.

A usage example with JdbcTemplate:

JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);  // reusable object
 final LobHandler lobHandler = new DefaultLobHandler();  // reusable object

 jdbcTemplate.query(
           "SELECT content FROM imagedb WHERE image_name=?", new Object[] {name},
           new AbstractLobStreamingResultSetExtractor() {
             public void streamData(ResultSet rs) throws SQLException, IOException {
         FileCopyUtils.copy(lobHandler.getBlobAsBinaryStream(rs, 1), contentStream);
       }
     });
 
Since:
1.0.2
Author:
Juergen Hoeller
See Also: