Класс SerialBlob
- Все реализуемые интерфейсы:
-
Serializable,Cloneable,Blob
public class SerialBlob extends Object implements Blob, Serializable, Cloneable
BLOB. Класс SerialBlob предоставляет конструктор для создания экземпляра из объекта Blob. Обратите внимание, что объект Blob должен был передать данные значения SQL BLOB клиенту перед построением объекта SerialBlob из него. Данные значения SQL BLOB могут быть материализованы на клиенте как массив байтов (с помощью метода Blob.getBytes) или как поток неинтерпретированных байтов (с помощью метода Blob.getBinaryStream).
Методы SerialBlob позволяют создать копию объекта SerialBlob в виде массива байтов или потока. Они также позволяют найти заданный шаблон байтов или объект Blob внутри объекта SerialBlob и обновить или усечь объект Blob.
Безопасность потоков
Объект SerialBlob не безопасен для использования несколькими потоками одновременно. Если SerialBlob будет использоваться более чем одним потоком, доступ к SerialBlob должен контролироваться соответствующей синхронизацией.
- С момента:
- 1.5
- См. также:
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
SerialBlob |
Создает объект SerialBlob, который является сериализованной версией заданного массива byte. |
SerialBlob |
Создает объект SerialBlob, который является сериализованной версией заданного объекта Blob. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
Object |
clone() |
Возвращает клонированный объект SerialBlob. |
boolean |
equals |
Сравнивает этот SerialBlob с указанным объектом. |
void |
free() |
Этот метод освобождает объект SerialBlob и высвобождает ресурсы, которые он удерживает. |
InputStream |
getBinaryStream() |
Возвращает этот объект SerialBlob как входной поток. |
InputStream |
getBinaryStream |
Возвращает объект InputStream, содержащий частичное значение Blob , начиная с байта, указанного pos, длина которого равна length байтам. |
byte[] |
getBytes |
Копирует указанное количество байтов, начиная с заданной позиции, из этого объекта SerialBlob в другой массив байтов. |
int |
hashCode() |
Возвращает хэш-код для этого объекта SerialBlob. |
long |
length() |
Возвращает количество байтов в массиве байтов этого объекта SerialBlob. |
long |
position |
Возвращает позицию в этом объекте SerialBlob, где начинается заданный шаблон байтов, начав поиск с указанной позиции. |
long |
position |
Возвращает позицию в этом объекте SerialBlob, где начинается указанный объект Blob, начав поиск с указанной позиции. |
OutputStream |
setBinaryStream |
Получает поток, который может использоваться для записи в значение SQL BLOB, которое представляет этот объект Blob. |
int |
setBytes |
Записывает заданный массив байтов в значение SQL BLOB, которое представляет этот объект Blob, начиная с позиции pos, и возвращает количество записанных байтов. |
int |
setBytes |
Записывает весь или часть заданного массива byte в значение SQL BLOB, которое представляет этот объект Blob, и возвращает количество записанных байтов. |
void |
truncate |
Усекает значение SQL BLOB, которое представляет этот объект Blob, до длины len байтов. |
Подробное описание конструкторов
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. - См. также:
Подробное описание методов
getBytes
public byte[] getBytes(long pos, int length) throws SerialException
SerialBlob в другой массив байтов. Обратите внимание, что если заданное количество байтов для копирования больше, чем длина массива байтов этого объекта SerialBlob, заданное значение будет уменьшено до длины массива.
- Указано в:
-
getBytesв интерфейсеBlob - Параметры:
-
pos- порядковый номер первой позиции байта в этом объектеSerialBlobдля копирования; нумерация начинается с1; не должно быть меньше1и должно быть меньше или равно длине этого объектаSerialBlob -
length- количество байтов для копирования - Возвращает:
- массив байтов, являющийся копией области этого объекта
SerialBlob, начиная с заданной позиции и содержащий заданное количество последовательных байтов - Исключения:
-
SerialException- если заданная начальная позиция находится вне границ; если ранее на этом объекте был вызван методfree - См. также:
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 - См. также:
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из базы данных произошла ошибка - См. также:
setBytes
public int setBytes(long pos, byte[] bytes, int offset, int length) throws SerialException, SQLException
byte массива в BLOB значение, которое представляет этот Blob объект, и возвращает количество записанных байтов. Запись начинается с позиции pos в BLOB значении; len байтов из заданного массива байтов записываются.- Specified by:
-
setBytesв интерфейсеBlob - Parameters:
-
pos- позиция вBLOBобъекте, с которой начать запись. Первая позиция —1; должна быть не меньше1и не больше длины этогоSerialBlobобъекта. -
bytes- массив байтов, которые будут записаны вBLOBзначение -
offset- смещение в массивеbyte, с которого начинать чтение байтов. Первая позиция смещения —0; должна быть не меньше0и не больше длиныbyteмассива -
length- количество байтов, которые будут записаны вBLOBзначение из массива байтов bytes. - Returns:
- количество записанных байтов
- Throws:
-
SerialException- если произошла ошибка доступа кBLOBзначению; если установлена некорректная позиция; если установлено некорректное значение смещения; если количество байтов для записи большеSerialBlobдлины; или комбинированные значения длины и смещения превышают буфер Blob; еслиfreeранее вызывался для этого объекта -
SQLException- если произошла ошибка доступа кBLOBзначению из базы данных. - See Also:
setBinaryStream
public OutputStream setBinaryStream(long pos) throws SerialException, SQLException
BLOB значение, которое представляет этот Blob объект. Поток начинается с позиции pos. Этот метод перенаправляет вызов setBinaryStream() к базовому Blob в случае, если этот SerialBlob объект создан с Blob. Если этот SerialBlob создан с byte массивом, выбрасывается SerialException.- Specified by:
-
setBinaryStreamв интерфейсеBlob - Parameters:
-
pos- позиция вBLOBзначении, с которой начать запись - Returns:
- объект
java.io.OutputStream, в который можно записать данные - Throws:
-
SQLException- если произошла ошибка доступа кBLOBзначению -
SerialException- если SerialBlob не создан сBlobобъектом, поддерживающимsetBinaryStream(); еслиfreeранее был вызван для этого объекта - See Also:
truncate
public void truncate(long length) throws SerialException
BLOB значение, которое представляет этот Blob объект, до len байтов в длину.- Specified by:
-
truncateв интерфейсеBlob - Parameters:
-
length- длина в байтах, до которой должно быть усеченоBLOBзначение, которое представляет этотBlobобъект - Throws:
-
SerialException- если произошла ошибка доступа к значению Blob; или длина усечения больше длины SerialBlob; еслиfreeбыл ранее вызван для этого объекта
getBinaryStream
public InputStream getBinaryStream(long pos, long length) throws SQLException
InputStream, содержащий частичное Blob значение, начиная с байта, указанного pos, имеющего длину length байтов.- Specified by:
-
getBinaryStreamв интерфейсеBlob - Parameters:
-
pos- смещение до первого байта частичного значения, подлежащего извлечению. Первый байт вBlobнаходится на позиции 1 -
length- длина в байтах частичного значения, подлежащего извлечению - Returns:
-
InputStreamдля чтения частичногоBlobзначения. - Throws:
-
SQLException- если pos меньше 1 или если pos больше числа байтов вBlobили если pos + length больше числа байтов вBlob -
SerialException- если методfreeбыл ранее вызван для этого объекта - Since:
- 1.6
free
public void free() throws SQLException
SerialBlob объект и высвобождает ресурсы, которые он удерживает. Объект считается недействительным после вызова метода free. Если free вызывается несколько раз, последующие вызовы free обрабатываются как команды бездействия.
- Specified by:
-
freeв интерфейсеBlob - Throws:
-
SQLException- если при высвобождении ресурсов Blob произошла ошибка - Since:
- 1.6
equals
public boolean equals(Object obj)
true тогда и только тогда, когда аргумент не null и является объектом
SerialBlob , представляющим ту же последовательность байтов, что и этот объект.- Overrides:
-
equalsв классеObject - Parameters:
-
obj- Объект для сравнения с этимSerialBlob - Returns:
-
trueесли заданный объект представляет SerialBlob, эквивалентный этому SerialBlob;falseв противном случае - See Also:
hashCode
public int hashCode()
SerialBlob.- Overrides:
-
hashCodeв классеObject - Returns:
- значение хеш-кода для этого объекта.
- See Also:
clone
public Object clone()
SerialBlob. Копия будет содержать ссылку на клонированный внутренний массив байтов, а не на ссылку на исходный внутренний массив байтов этого SerialBlob объекта. Базовый Blob объект будет установлен в null.- Overrides:
-
cloneв классеObject - Returns:
- клонированный SerialBlob
- See Also:
© 1993, 2021, 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.
https://docs.oracle.com/en/java/javase/17/docs/api/java.sql.rowset/javax/sql/rowset/serial/SerialBlob.html