Класс 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 должен быть контролироваться соответствующей синхронизацией.
- С:
- 1.5
- См. также:
- Сериализованная форма
Конструкторы
| Конструктор | Описание |
|---|---|
SerialBlob(byte[] b) | Создаёт объект |
SerialBlob(Blob blob) | Создаёт объект |
Методы
| Модификатор и тип | Метод | Описание |
|---|---|---|
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(byte[] pattern,
long start) | Возвращает позицию в этом объекте |
long | position(Blob 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 или если pos больше количества байтов вBlobили если pos + length больше количества байтов вBlob -
SerialException- если методfreeранее был вызван для этого объекта - С:
- 1.6
free
public void free()
throws SQLException Этот метод освобождает объект SerialBlob и освобождает ресурсы, которые он хранит. Объект становится недействительным после вызова метода free.
Если free вызывается несколько раз, последующие вызовы free обрабатываются как no-op.
- Указано:
-
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.
https://docs.oracle.com/en/java/javase/11/docs/api/java.sql.rowset/javax/sql/rowset/serial/SerialBlob.html