Класс SerialBlob
- java.lang.Object
-
- javax.sql.rowset.serial.SerialBlob
- Все реализованные интерфейсы:
- Serializable, Cloneable, Blob
public class SerialBlob extends Object implements Blob, Serializable, Cloneable
Сериализованное отображение в языке программирования Java значения SQL BLOB.
Класс SerialBlob предоставляет конструктор для создания экземпляра из объекта Blob. Обратите внимание, что объект Blob должен был передать данные значения SQL BLOB на клиент перед созданием объекта SerialBlob из него. Данные значения SQL BLOB могут быть материализованы на клиенте в виде массива байтов (используя метод Blob.getBytes) или как поток неинтерпретированных байтов (используя метод Blob.getBinaryStream).
Методы SerialBlob позволяют создать копию объекта SerialBlob в виде массива байтов или потока. Они также позволяют найти заданный шаблон байтов или объект Blob внутри объекта SerialBlob и обновить или усечь объект Blob.
Безопасность потоков
Объект SerialBlob не предназначен для одновременного использования несколькими потоками. Если SerialBlob будет использоваться более чем одним потоком, доступ к SerialBlob должен контролироваться соответствующей синхронизацией.
- См. также:
- Сериализованная форма
Конструкторы
| Конструктор и описание |
|---|
SerialBlob(Blob blob) Создаёт объект |
SerialBlob(byte[] b) Создаёт объект |
Методы
| Модификатор и тип | Метод и описание |
|---|---|
Object |
clone() Возвращает копию этого |
boolean |
equals(Object obj) Сравнивает этот SerialBlob с указанным объектом. |
void |
free() Этот метод освобождает объект |
InputStream |
getBinaryStream() Возвращает этот объект |
InputStream |
getBinaryStream(long pos,
long length) Возвращает объект |
byte[] |
getBytes(long pos,
int length) Копирует указанное количество байтов, начиная с заданной позиции, из этого объекта |
int |
hashCode() Возвращает хэш-код для этого |
long |
length() Возвращает количество байтов в массиве байтов этого объекта |
long |
position(Blob pattern,
long start) Возвращает позицию в этом объекте |
long |
position(byte[] pattern,
long start) Возвращает позицию в этом объекте |
OutputStream |
setBinaryStream(long pos) Возвращает поток, который может использоваться для записи в значение SQL |
int |
setBytes(long pos,
byte[] bytes) Записывает указанный массив байтов в значение SQL |
int |
setBytes(long pos,
byte[] bytes,
int offset,
int length) Записывает весь или часть данного массива байтов |
void |
truncate(long length) Усекает значение SQL |
Методы, унаследованные от класса java.lang.Object
finalize, getClass, notify, notifyAll, toString, wait, wait, wait Конструкторы
SerialBlob
public SerialBlob(byte[] b)
throws SerialException,
SQLException Конструирует объект SerialBlob, который является сериализованной версией данного массива byte.
Новый объект SerialBlob инициализируется данными из массива byte, что позволяет не связанным объектам RowSet создавать сериализованные объекты Blob без доступа к источнику данных.
- Параметры:
-
b- массивbyte, содержащий данные для объектаBlob, который должен быть сериализован - Исключения:
-
SerialException- если возникает ошибка во время сериализации -
SQLException- если возникает ошибка SQL
SerialBlob
public SerialBlob(Blob blob)
throws SerialException,
SQLException Конструирует объект SerialBlob, который является сериализованной версией данного объекта Blob.
Новый объект SerialBlob инициализируется данными из объекта Blob; поэтому объект Blob должен был ранее передать данные значения SQL BLOB клиенту из базы данных. В противном случае новый объект SerialBlob не будет содержать данных.
- Параметры:
-
blob- объектBlob, из которого должен быть создан этот объектSerialBlob; не может быть равен null. - Исключения:
-
SerialException- если возникает ошибка во время сериализации -
SQLException- еслиBlob, переданный в этот конструктор, являетсяnull. - См. также:
Blob
Методы
getBytes
public byte[] getBytes(long pos,
int length)
throws SerialException Копирует указанное количество байтов, начиная с заданной позиции, из этого объекта SerialBlob в другой массив байтов.
Обратите внимание, что если заданное количество байтов для копирования больше длины массива байтов этого объекта SerialBlob, заданное число будет сокращено до длины массива.
- Указано в:
-
getBytesв интерфейсеBlob - Параметры:
-
pos- порядковая позиция первого байта в этом объектеSerialBlob, который должен быть скопирован; нумерация начинается с1; не должно быть меньше1и должно быть меньше или равно длине этого объектаSerialBlob -
length- количество байтов для копирования - Возвращает:
- массив байтов, который является копией области этого объекта
SerialBlob, начиная с заданной позиции и содержащий заданное количество последовательных байтов - Исключения:
-
SerialException- если заданная начальная позиция находится за пределами допустимого диапазона; еслиfreeбыл ранее вызван для этого объекта - См. также:
Blob.setBytes(long, byte[])
length
public long length()
throws SerialException Извлекает количество байтов в массиве байтов этого объекта SerialBlob.
- Указано в:
-
lengthв интерфейсеBlob - Возвращает:
long, указывающий длину в байтах массива байтов этого объектаSerialBlob- Исключения:
-
SerialException- если возникает ошибка; еслиfreeбыл ранее вызван для этого объекта
getBinaryStream
public InputStream getBinaryStream()
throws SerialException Возвращает этот объект SerialBlob в виде входного потока. В отличие от связанного метода, setBinaryStream, поток создается независимо от того, был ли SerialBlob создан с объектом Blob или массивом byte.
- Указано в:
-
getBinaryStreamв интерфейсеBlob - Возвращает:
- объект
java.io.InputStream, содержащий массив байтов этого объектаSerialBlob - Исключения:
-
SerialException- если возникает ошибка; еслиfreeбыл ранее вызван для этого объекта - См. также:
setBinaryStream(long)
position
public long position(byte[] pattern,
long start)
throws SerialException,
SQLException Возвращает позицию в этом объекте SerialBlob, где начинается заданный шаблон байтов, начиная поиск с указанной позиции.
- Указано в:
-
positionв интерфейсеBlob - Параметры:
-
pattern- шаблон байтов, для которого нужно выполнить поиск -
start- позиция байта в этом объектеSerialBlob, с которой следует начать поиск; первая позиция -1; не должно быть меньше1и больше длины этого объектаSerialBlob - Возвращает:
- позиция в этом объекте
SerialBlob, где начинается данный шаблон, начиная с указанной позиции;-1, если шаблон не найден или заданная начальная позиция находится за пределами допустимого диапазона; нумерация позиций для возвращаемого значения начинается с1 - Исключения:
-
SerialException- если возникает ошибка при сериализации blob; еслиfreeбыл ранее вызван для этого объекта -
SQLException- если возникает ошибка доступа к значениюBLOBиз базы данных
position
public long position(Blob pattern,
long start)
throws SerialException,
SQLException Возвращает позицию в этом объекте SerialBlob, где начинается данный объект Blob, начиная поиск с указанной позиции.
- Указано в:
-
positionв интерфейсеBlob - Параметры:
-
pattern- объектBlob, для которого нужно выполнить поиск; -
start- позиция байта в этом объектеSerialBlob, с которой следует начать поиск; первая позиция -1; не должно быть меньше1и больше длины этого объектаSerialBlob - Возвращает:
- позиция в этом объекте
SerialBlob, где начинается данный объектBlob, начиная с указанной позиции;-1, если шаблон не найден или заданная начальная позиция находится за пределами допустимого диапазона; нумерация позиций для возвращаемого значения начинается с1 - Исключения:
-
SerialException- если возникает ошибка при сериализации blob; еслиfreeбыл ранее вызван для этого объекта -
SQLException- если возникает ошибка доступа к значениюBLOBиз базы данных
setBytes
public int setBytes(long pos,
byte[] bytes)
throws SerialException,
SQLException Записывает данный массив байтов в значение BLOB, которое представляет этот объект Blob, начиная с позиции pos, и возвращает количество записанных байтов.
- Указано в:
-
setBytesв интерфейсеBlob - Параметры:
-
pos- позиция в значении SQLBLOB, с которой следует начать запись. Первая позиция -1; не должно быть меньше1и больше длины этого объектаSerialBlob. -
bytes- массив байтов, который должен быть записан в значениеBLOB, которое представляет этот объектBlob - Возвращает:
- количество записанных байтов
- Исключения:
-
SerialException- если возникает ошибка доступа к значениюBLOB; или если установлена недопустимая позиция; если установлено недопустимое значение смещения; еслиfreeбыл ранее вызван для этого объекта -
SQLException- если возникает ошибка доступа к значениюBLOBиз базы данных - См. также:
getBytes(long, int)
setBytes
public int setBytes(long pos,
byte[] bytes,
int offset,
int length)
throws SerialException,
SQLException Записывает весь или часть данного массива byte в значение BLOB, которое представляет этот объект Blob, и возвращает количество записанных байтов. Запись начинается с позиции pos в значении BLOB; записываются len байтов из данного массива байтов.
- Указано в:
-
setBytesв интерфейсеBlob - Параметры:
-
pos- позиция в объектеBLOB, с которой следует начать запись. Первая позиция -1; не должно быть меньше1и больше длины этого объектаSerialBlob. -
bytes- массив байтов, который должен быть записан в значениеBLOB -
offset- смещение в массивеbyte, с которого следует начать чтение байтов. Первая позиция смещения -0; не должно быть меньше0и больше длины массиваbyte -
length- количество байтов, которые должны быть записаны в значениеBLOBиз массива байтов bytes. - Возвращает:
- количество записанных байтов
- Исключения:
-
SerialException- если возникает ошибка доступа к значениюBLOB; если установлена недопустимая позиция; если установлено недопустимое значение смещения; если количество байтов для записи больше длиныSerialBlob; или если объединенные значения длины и смещения больше буфера Blob; еслиfreeбыл ранее вызван для этого объекта -
SQLException- если возникает ошибка доступа к значениюBLOBиз базы данных. - См. также:
getBytes(long, int)
setBinaryStream
public OutputStream setBinaryStream(long pos)
throws SerialException,
SQLException Извлекает поток, который может использоваться для записи в значение BLOB, которое представляет этот объект Blob. Поток начинается с позиции pos. Этот метод перенаправляет вызов setBinaryStream() на основной Blob, в случае, если этот объект SerialBlob создан с помощью Blob. Если этот SerialBlob создан с помощью массива byte, выбрасывается SerialException.
- Указано в:
-
setBinaryStreamв интерфейсеBlob - Параметры:
-
pos- позиция в значенииBLOBдля начала записи - Возвращает:
- объект
java.io.OutputStream, в который можно записать данные - Исключения:
-
SQLException- если возникла ошибка доступа к значениюBLOB -
SerialException- если SerialBlob не инициализирован с объектомBlob, поддерживающимsetBinaryStream(); если методfreeранее был вызван для этого объекта - См. также:
getBinaryStream()
truncate
public void truncate(long length)
throws SerialException Усекает значение BLOB, представляемое этим объектом Blob, до длины в len байт.
- Указано в:
-
truncateв интерфейсеBlob - Параметры:
-
length- длина в байтах, до которой следует усечь значениеBLOB, представляемое этим объектомBlob - Исключения:
-
SerialException- если произошла ошибка доступа к значению Blob; или длина усечения больше длины SerialBlob; если методfreeранее был вызван для этого объекта
getBinaryStream
public InputStream getBinaryStream(long pos,
long length)
throws SQLException Возвращает объект InputStream, содержащий частичное значение Blob, начиная с байта, указанного pos, длиной в length байт.
- Указано в:
-
getBinaryStreamв интерфейсеBlob - Параметры:
-
pos- смещение до первого байта частичного значения для извлечения. Первый байт вBlobнаходится в позиции 1 -
length- длина в байтах частичного значения для извлечения - Возвращает:
-
объект
InputStream, через который можно прочитать частичное значениеBlob. - Исключения:
-
SQLException- если pos меньше 1 или больше числа байтов вBlob, или если pos + length больше числа байтов вBlob -
SerialException- если методfreeранее был вызван для этого объекта - С:
- 1.6
free
public void free()
throws SQLException Этот метод освобождает объект SeriableBlob и высвобождает ресурсы, которые он удерживает. Объект становится недоступным после вызова метода free.
Если метод free вызывается несколько раз, последующие вызовы метода free обрабатываются как пустые операции.
- Указано в:
-
freeв интерфейсеBlob - Исключения:
-
SQLException- если произошла ошибка при высвобождении ресурсов Blob - С:
- 1.6
equals
public boolean equals(Object obj)
Сравнивает этот SerialBlob с указанным объектом. Результат — true, если и только если аргумент не null и является объектом SerialBlob , представляющим ту же последовательность байтов, что и этот объект.
- Переопределяет:
-
equalsв классеObject - Параметры:
-
obj- Объект для сравнения с этимSerialBlob - Возвращает:
-
trueесли заданный объект представляет SerialBlob, эквивалентный этому SerialBlob,falseв противном случае - См. также:
-
Object.hashCode(),HashMap
hashCode
public int hashCode()
Возвращает хэш-код для этого SerialBlob.
- Переопределяет:
-
hashCodeв классеObject - Возвращает:
- значение хэш-кода для этого объекта.
- См. также:
-
Object.equals(java.lang.Object),System.identityHashCode(java.lang.Object)
clone
public Object clone()
Возвращает копию этого SerialBlob. Копия будет содержать ссылку на клон внутреннего массива байтов, а не на ссылку на исходный внутренний массив байтов этого объекта SerialBlob. Внутренний объект Blob будет установлен в null.
© 1993, 2020, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.