org.h2.jdbc

## Class JdbcBlob

- java.lang.Object
- - org.h2.message.TraceObject
  - - org.h2.jdbc.JdbcBlob

All Implemented Interfaces:
  java.sql.Blob

    public class JdbcBlob
    extends TraceObject
    implements java.sql.Blob

Represents a BLOB value.

### Field Summary

### Fields inherited from class org.h2.message.TraceObject

`ARRAY, BLOB, CALLABLE_STATEMENT, CLOB, CONNECTION, DATA_SOURCE, DATABASE_META_DATA, PARAMETER_META_DATA, PREPARED_STATEMENT, RESULT_SET, RESULT_SET_META_DATA, SAVEPOINT, STATEMENT, trace, XA_DATA_SOURCE, XID`

### Constructor Summary

Constructors
Constructor and Description
`JdbcBlob(JdbcConnection conn, Value value, int id)` INTERNAL

### Method Summary

Methods
`void` `free()` Release all resources of this object.
`java.io.InputStream` `getBinaryStream()` Returns the input stream.
`java.io.InputStream` `getBinaryStream(long pos, long length)` [Not supported] Returns the input stream, starting from an offset.
`byte[]` `getBytes(long pos, int length)` Returns some bytes of the object.
`long` `length()` Returns the length.
`long` `position(java.sql.Blob blobPattern, long start)` [Not supported] Searches a pattern and return the position.
`long` `position(byte[] pattern, long start)` [Not supported] Searches a pattern and return the position.
`java.io.OutputStream` `setBinaryStream(long pos)` Get a writer to update the Blob.
`int` `setBytes(long pos, byte[] bytes)` Fills the Blob.
`int` `setBytes(long pos, byte[] bytes, int offset, int len)` [Not supported] Sets some bytes of the object.
`java.lang.String` `toString()` INTERNAL
`void` `truncate(long len)` [Not supported] Truncates the object.

### Methods inherited from class org.h2.message.TraceObject

`debugCode, debugCodeAssign, debugCodeCall, debugCodeCall, debugCodeCall, getNextId, getTraceId, getTraceObjectName, isDebugEnabled, isInfoEnabled, logAndConvert, quote, quoteArray, quoteBigDecimal, quoteBytes, quoteDate, quoteIntArray, quoteMap, quoteTime, quoteTimestamp, setTrace, unsupported`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

### Constructor Detail

#### JdbcBlob

    public JdbcBlob(JdbcConnection conn,
            Value value,
            int id)

INTERNAL

### Method Detail

#### length

    public long length()
                throws java.sql.SQLException

Returns the length.

Specified by:
  `length` in interface `java.sql.Blob`
Returns:
  the length
Throws:
  `java.sql.SQLException`

#### truncate

    public void truncate(long len)
                  throws java.sql.SQLException

[Not supported] Truncates the object.

Specified by:
  `truncate` in interface `java.sql.Blob`
Parameters:
  `len` - the new length
Throws:
  `java.sql.SQLException`

#### getBytes

    public byte[] getBytes(long pos,
                  int length)
                    throws java.sql.SQLException

Returns some bytes of the object.

Specified by:
  `getBytes` in interface `java.sql.Blob`
Parameters:
  `pos` - the index, the first byte is at position 1
  `length` - the number of bytes
Returns:
  the bytes, at most length bytes
Throws:
  `java.sql.SQLException`

#### setBytes

    public int setBytes(long pos,
               byte[] bytes)
                 throws java.sql.SQLException

Fills the Blob. This is only supported for new, empty Blob objects that were created with Connection.createBlob(). The position must be 1, meaning the whole Blob data is set.

Specified by:
  `setBytes` in interface `java.sql.Blob`
Parameters:
  `pos` - where to start writing (the first byte is at position 1)
  `bytes` - the bytes to set
Returns:
  the length of the added data
Throws:
  `java.sql.SQLException`

#### setBytes

    public int setBytes(long pos,
               byte[] bytes,
               int offset,
               int len)
                 throws java.sql.SQLException

[Not supported] Sets some bytes of the object.

Specified by:
  `setBytes` in interface `java.sql.Blob`
Parameters:
  `pos` - the write position
  `bytes` - the bytes to set
  `offset` - the bytes offset
  `len` - the number of bytes to write
Returns:
  how many bytes have been written
Throws:
  `java.sql.SQLException`

#### getBinaryStream

    public java.io.InputStream getBinaryStream()
                                        throws java.sql.SQLException

Returns the input stream.

Specified by:
  `getBinaryStream` in interface `java.sql.Blob`
Returns:
  the input stream
Throws:
  `java.sql.SQLException`

#### setBinaryStream

    public java.io.OutputStream setBinaryStream(long pos)
                                         throws java.sql.SQLException

Get a writer to update the Blob. This is only supported for new, empty Blob objects that were created with Connection.createBlob(). The Blob is created in a separate thread, and the object is only updated when OutputStream.close() is called. The position must be 1, meaning the whole Blob data is set.

Specified by:
  `setBinaryStream` in interface `java.sql.Blob`
Parameters:
  `pos` - where to start writing (the first byte is at position 1)
Returns:
  an output stream
Throws:
  `java.sql.SQLException`

#### position

    public long position(byte[] pattern,
                long start)
                  throws java.sql.SQLException

[Not supported] Searches a pattern and return the position.

Specified by:
  `position` in interface `java.sql.Blob`
Parameters:
  `pattern` - the pattern to search
  `start` - the index, the first byte is at position 1
Returns:
  the position (first byte is at position 1), or -1 for not found
Throws:
  `java.sql.SQLException`

#### position

    public long position(java.sql.Blob blobPattern,
                long start)
                  throws java.sql.SQLException

[Not supported] Searches a pattern and return the position.

Specified by:
  `position` in interface `java.sql.Blob`
Parameters:
  `blobPattern` - the pattern to search
  `start` - the index, the first byte is at position 1
Returns:
  the position (first byte is at position 1), or -1 for not found
Throws:
  `java.sql.SQLException`

#### free

    public void free()

Release all resources of this object.

Specified by:
  `free` in interface `java.sql.Blob`

#### getBinaryStream

    public java.io.InputStream getBinaryStream(long pos,
                                      long length)
                                        throws java.sql.SQLException

[Not supported] Returns the input stream, starting from an offset.

Specified by:
  `getBinaryStream` in interface `java.sql.Blob`
Parameters:
  `pos` - where to start reading
  `length` - the number of bytes that will be read
Returns:
  the input stream to read
Throws:
  `java.sql.SQLException`

#### toString

    public java.lang.String toString()

INTERNAL

Overrides:
  `toString` in class `java.lang.Object`