Class BlobImpl
- All Implemented Interfaces:
Blob
The representation (mapping) in the Java 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.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate byte[]
(package private) boolean
Whether we have already freed resources.private int
private InputStream
-
Constructor Summary
ConstructorsConstructorDescriptionBlobImpl
(byte[] bytes) Constructor taking a byte array.BlobImpl
(InputStream stream) Constructor taking an InputStream.Constructor taking a serialised object. -
Method Summary
Modifier and TypeMethodDescriptionvoid
free()
Free the Blob object and releases the resources that it holds.getBinaryStream
(long pos, long length) Returns an InputStream object that contains a partial Blob value, starting with the byte specified by pos, which is length bytes in length.byte[]
getBytes
(long pos, int length) Accessor for the Object.long
length()
long
position
(byte[] pattern, long start) long
setBinaryStream
(long value) int
setBytes
(long value, byte[] bytes) int
setBytes
(long value, byte[] bytes, int pos, int length) void
truncate
(long value)
-
Field Details
-
stream
-
length
private int length -
bytes
private byte[] bytes -
freed
boolean freedWhether we have already freed resources.
-
-
Constructor Details
-
BlobImpl
Constructor taking a serialised object.- Parameters:
obj
- The serialised object.- Throws:
IOException
- if an error occurs
-
BlobImpl
public BlobImpl(byte[] bytes) Constructor taking a byte array.- Parameters:
bytes
- The byte array
-
BlobImpl
Constructor taking an InputStream.- Parameters:
stream
- The InputStream
-
-
Method Details
-
getObject
Accessor for the Object.- Returns:
- The object.
- Throws:
SQLException
- if an error occurs
-
length
- Specified by:
length
in interfaceBlob
- Throws:
SQLException
-
getBytes
- Specified by:
getBytes
in interfaceBlob
- Throws:
SQLException
-
setBytes
- Specified by:
setBytes
in interfaceBlob
- Throws:
SQLException
-
truncate
- Specified by:
truncate
in interfaceBlob
- Throws:
SQLException
-
setBytes
- Specified by:
setBytes
in interfaceBlob
- Throws:
SQLException
-
getBinaryStream
- Specified by:
getBinaryStream
in interfaceBlob
- Throws:
SQLException
-
getBinaryStream
Returns an InputStream object that contains a partial Blob value, starting with the byte specified by pos, which is length bytes in length.- Specified by:
getBinaryStream
in interfaceBlob
- Parameters:
pos
- the offset to the first byte of the partial value to be retrieved. The first byte in the Blob is at position 1length
- the length in bytes of the partial value to be retrieved- Throws:
SQLException
-
setBinaryStream
- Specified by:
setBinaryStream
in interfaceBlob
- Throws:
SQLException
-
free
Free the Blob object and releases the resources that it holds. The object is invalid once the free method is called.- Specified by:
free
in interfaceBlob
- Throws:
SQLException
- if an error occurs
-
position
- Specified by:
position
in interfaceBlob
- Throws:
SQLException
-
position
- Specified by:
position
in interfaceBlob
- Throws:
SQLException
-