## com.mysql.jdbc
Class BlobFromLocator

    java.lang.Object
      com.mysql.jdbc.BlobFromLocator

All Implemented Interfaces:
  java.sql.Blob

    public class BlobFromLocator

extends java.lang.Object
implements java.sql.Blob

The representation (mapping) in the JavaTM programming language of an SQL BLOB value. An SQL BLOB is a built-in type that stores a Binary Large Object as a column value in a row of a database table. The driver implements Blob using an SQL locator(BLOB), which means that a Blob object contains a logical pointer to the SQL BLOB data rather than the data itself. A Blob object is valid for the duration of the transaction in which is was created. Methods in the interfaces ResultSet, CallableStatement, and PreparedStatement, such as getBlob and setBlob allow a programmer to access an SQL BLOB value. The Blob interface provides methods for getting the length of an SQL BLOB (Binary Large Object) value, for materializing a BLOB value on the client, and for determining the position of a pattern of bytes within a BLOB value. This class is new in the JDBC 2.0 API.

Nested Class Summary
`(package private) class` `BlobFromLocator.LocatorInputStream`

Constructor Summary
`BlobFromLocator(ResultSetImpl creatorResultSetToSet, int blobColumnIndex, ExceptionInterceptor exceptionInterceptor)` Creates an updatable BLOB that can update in-place

Method Summary
`(package private) java.sql.PreparedStatement` `createGetBytesStatement()`
`void` `free()`
`java.io.InputStream` `getBinaryStream()` Retrieves the BLOB designated by this Blob instance as a stream.
`java.io.InputStream` `getBinaryStream(long pos, long length)`
`byte[]` `getBytes(long pos, int length)` Returns as an array of bytes, part or all of the BLOB value that this Blob object designates.
`(package private) byte[]` `getBytesInternal(java.sql.PreparedStatement pStmt, long pos, int length)`
`long` `length()` Returns the number of bytes in the BLOB value designated by this Blob object.
`long` `position(java.sql.Blob pattern, long start)` Finds the position of the given pattern in this BLOB.
`long` `position(byte[] pattern, long start)`
`java.io.OutputStream` `setBinaryStream(long indexToWriteAt)`
`int` `setBytes(long writeAt, byte[] bytes)`
`int` `setBytes(long writeAt, byte[] bytes, int offset, int length)`
`void` `truncate(long length)`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### BlobFromLocator

    BlobFromLocator(ResultSetImpl creatorResultSetToSet,
                    int blobColumnIndex,
                    ExceptionInterceptor exceptionInterceptor)
              throws java.sql.SQLException

  Creates an updatable BLOB that can update in-place

  Throws:
    `java.sql.SQLException`

Method Detail

### setBinaryStream

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

  Specified by:
    `setBinaryStream` in interface `java.sql.Blob`
  Throws:
    `java.sql.SQLException`
  See Also:
    `Blob.setBinaryStream(long)`

### getBinaryStream

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

  Retrieves the BLOB designated by this Blob instance as a stream.

  Specified by:
    `getBinaryStream` in interface `java.sql.Blob`
  Returns:
    this BLOB represented as a binary stream of bytes.
  Throws:
    `java.sql.SQLException` - if a database error occurs

### setBytes

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

  Specified by:
    `setBytes` in interface `java.sql.Blob`
  Throws:
    `java.sql.SQLException`
  See Also:
    `Blob.setBytes(long, byte[], int, int)`

### setBytes

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

  Specified by:
    `setBytes` in interface `java.sql.Blob`
  Throws:
    `java.sql.SQLException`
  See Also:
    `Blob.setBytes(long, byte[])`

### getBytes

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

  Returns as an array of bytes, part or all of the BLOB value that this Blob object designates.

  Specified by:
    `getBytes` in interface `java.sql.Blob`
  Parameters:
    `pos` - where to start the part of the BLOB
    `length` - the length of the part of the BLOB you want returned.
  Returns:
    the bytes stored in the blob starting at position `pos` and having a length of `length`.
  Throws:
    `java.sql.SQLException` - if a database error occurs

### length

    public long length()
                throws java.sql.SQLException

  Returns the number of bytes in the BLOB value designated by this Blob object.

  Specified by:
    `length` in interface `java.sql.Blob`
  Returns:
    the length of this blob
  Throws:
    `java.sql.SQLException` - if a database error occurs

### position

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

  Finds the position of the given pattern in this BLOB.

  Specified by:
    `position` in interface `java.sql.Blob`
  Parameters:
    `pattern` - the pattern to find
    `start` - where to start finding the pattern
  Returns:
    the position where the pattern is found in the BLOB, -1 if not found
  Throws:
    `java.sql.SQLException` - if a database error occurs

### position

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

  Specified by:
    `position` in interface `java.sql.Blob`
  Throws:
    `java.sql.SQLException`
  See Also:
    `Blob.position(byte[], long)`

### truncate

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

  Specified by:
    `truncate` in interface `java.sql.Blob`
  Throws:
    `java.sql.SQLException`
  See Also:
    `Blob.truncate(long)`

### createGetBytesStatement

    java.sql.PreparedStatement createGetBytesStatement()
                                                 throws java.sql.SQLException

  Throws:
    `java.sql.SQLException`

### getBytesInternal

    byte[] getBytesInternal(java.sql.PreparedStatement pStmt,
                            long pos,
                            int length)
                      throws java.sql.SQLException

  Throws:
    `java.sql.SQLException`

### free

    public void free()
              throws java.sql.SQLException

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

### getBinaryStream

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

  Specified by:
    `getBinaryStream` in interface `java.sql.Blob`
  Throws:
    `java.sql.SQLException`