Spec-Zone.ru › OpenJDK 27

Интерфейс Blob

Все суперинтерфейсы:
AutoCloseable
Все известные реализующие классы:
SerialBlob
public interface Blob extends AutoCloseable
Представление (сопоставление) значения SQL типа BLOB в языке программирования Java. SQL-BLOB — это встроенный тип, который хранит двоичный большой объект в качестве значения столбца строки таблицы базы данных. По умолчанию драйверы реализуют Blob с помощью SQL-locator(BLOB), то есть объект Blob содержит логический указатель на данные SQL-BLOB, а не сами данные. Объект Blob действителен в течение транзакции, в которой он был создан.

Методы интерфейсов ResultSet, CallableStatement и PreparedStatement, такие как getBlob и setBlob, позволяют программисту получать доступ к значению SQL-BLOB. Интерфейс Blob предоставляет методы для получения длины значения SQL-BLOB (двоичного большого объекта), материализации значения BLOB на стороне клиента и определения позиции последовательности байтов в значении BLOB. Кроме того, этот интерфейс содержит методы для обновления значения BLOB.

Чтобы освободить ресурсы, используемые объектом Blob, приложения должны вызвать метод free() или close(). Любая попытка вызвать метод, отличный от free() или close(), после закрытия объекта Blob приведет к выбросу исключения SQLException.

Если драйвер JDBC поддерживает этот тип данных, все методы интерфейса Blob должны быть полностью реализованы.

С версии:
1.2

Краткое описание методов

Модификатор и тип Метод Описание
default void close()
Закрывает объект Blob и освобождает удерживаемые им ресурсы.
void free()
Закрывает объект Blob и освобождает удерживаемые им ресурсы.
InputStream getBinaryStream()
Получает значение BLOB, обозначенное этим экземпляром Blob, в виде потока.
InputStream getBinaryStream(long pos, long length)
Возвращает объект InputStream, содержащий часть значения Blob длиной length байт, начиная с байта, указанного параметром pos.
byte[] getBytes(long pos, int length)
Получает всё значение BLOB или его часть, представленную этим объектом Blob, в виде массива байтов.
long length()
Возвращает количество байтов в значении BLOB, обозначенном этим объектом Blob.
long position(byte[] pattern, long start)
Получает позицию байта, с которой начинается указанный массив байтов pattern в значении BLOB, представленном этим объектом Blob.
long position(Blob pattern, long start)
Получает позицию байта в значении BLOB, обозначенном этим объектом Blob, с которой начинается pattern.
OutputStream setBinaryStream(long pos)
Получает поток, который можно использовать для записи в значение BLOB, представленное этим объектом Blob.
int setBytes(long pos, byte[] bytes)
Записывает указанный массив байтов в значение BLOB, представленное этим объектом Blob, начиная с позиции pos, и возвращает количество записанных байтов.
int setBytes(long pos, byte[] bytes, int offset, int len)
Записывает весь указанный массив byte или его часть в значение BLOB, представленное этим объектом Blob, и возвращает количество записанных байтов.
void truncate(long len)
Усекает значение BLOB, представленное этим объектом Blob, до длины len байт.

Подробное описание методов

length

long length() throws SQLException
Возвращает количество байтов в значении BLOB, обозначенном этим объектом Blob.
Возвращает:
длина BLOB в байтах
Выбрасывает:
SQLException — если при получении длины BLOB произошла ошибка
SQLFeatureNotSupportedException — если драйвер JDBC не поддерживает этот метод
С версии:
1.2

getBytes

byte[] getBytes(long pos, int length) throws SQLException
Получает всё значение BLOB или его часть, представленную этим объектом Blob, в виде массива байтов. Этот массив byte содержит до length последовательных байтов, начиная с позиции pos.
Параметры:
pos — порядковая позиция первого байта в значении BLOB, который нужно извлечь; первый байт находится в позиции 1
length — количество последовательных байтов для копирования; значение length должно быть равно 0 или больше
Возвращает:
массив байтов, содержащий до length последовательных байтов из значения BLOB, обозначенного этим объектом Blob, начиная с байта в позиции pos
Выбрасывает:
SQLException — если при доступе к значению BLOB произошла ошибка; если pos меньше 1 или length меньше 0
SQLFeatureNotSupportedException — если драйвер JDBC не поддерживает этот метод
С версии:
1.2
См. также:
  • setBytes(long, byte[])

getBinaryStream

InputStream getBinaryStream() throws SQLException
Получает значение BLOB, обозначенное этим экземпляром Blob, в виде потока.
Возвращает:
поток, содержащий данные BLOB
Выбрасывает:
SQLException — если при доступе к значению BLOB произошла ошибка
SQLFeatureNotSupportedException — если драйвер JDBC не поддерживает этот метод
С версии:
1.2
См. также:
  • setBinaryStream(long)

position

long position(byte[] pattern, long start) throws SQLException
Получает позицию байта, с которой начинается указанный массив байтов pattern в значении BLOB, представленном этим объектом Blob. Поиск pattern начинается с позиции start.
Параметры:
pattern — массив байтов для поиска
start — позиция, с которой начинается поиск; первая позиция — 1
Возвращает:
позиция, в которой встречается шаблон, или -1
Выбрасывает:
SQLException — если при доступе к BLOB произошла ошибка или если start меньше 1
SQLFeatureNotSupportedException — если драйвер JDBC не поддерживает этот метод
С версии:
1.2

position

long position(Blob pattern, long start) throws SQLException
Получает позицию байта в значении BLOB, обозначенном этим объектом Blob, с которой начинается pattern. Поиск начинается с позиции start.
Параметры:
pattern — объект Blob, обозначающий значение BLOB для поиска
start — позиция в значении BLOB, с которой начинается поиск; первая позиция — 1
Возвращает:
позиция, в которой начинается шаблон, или -1
Выбрасывает:
SQLException — если при доступе к значению BLOB произошла ошибка или если start меньше 1
SQLFeatureNotSupportedException — если драйвер JDBC не поддерживает этот метод
С версии:
1.2

setBytes

int setBytes(long pos, byte[] bytes) throws SQLException
Записывает указанный массив байтов в значение BLOB, представленное этим объектом Blob, начиная с позиции pos, и возвращает количество записанных байтов. Массив байтов перезаписывает существующие байты в объекте Blob, начиная с позиции pos. Если при записи массива байтов достигнут конец значения Blob, длина значения Blob увеличивается, чтобы вместить дополнительные байты.

Примечание: Если указанное для pos значение превышает длину значения BLOB + 1, поведение не определено. Некоторые драйверы JDBC могут выбросить SQLException, тогда как другие драйверы могут поддерживать эту операцию.

Параметры:
pos — позиция в объекте BLOB, с которой начинается запись; первая позиция — 1
bytes — массив байтов для записи в значение BLOB, представленное этим объектом Blob
Возвращает:
количество записанных байтов
Выбрасывает:
SQLException — если при доступе к значению BLOB произошла ошибка или если pos меньше 1
SQLFeatureNotSupportedException — если драйвер JDBC не поддерживает этот метод
С версии:
1.4
См. также:
  • getBytes(long, int)

setBytes

int setBytes(long pos, byte[] bytes, int offset, int len) throws SQLException
Записывает весь указанный массив byte или его часть в значение BLOB, представленное этим объектом Blob, и возвращает количество записанных байтов. Запись начинается с позиции pos в значении BLOB; записывается len байтов из указанного массива байтов. Массив байтов перезаписывает существующие байты в объекте Blob, начиная с позиции pos. Если при записи массива байтов достигнут конец значения Blob, длина значения Blob увеличивается, чтобы вместить дополнительные байты.

Примечание: Если указанное для pos значение превышает длину значения BLOB + 1, поведение не определено. Некоторые драйверы JDBC могут выбросить SQLException, тогда как другие драйверы могут поддерживать эту операцию.

Параметры:
pos — позиция в объекте BLOB, с которой начинается запись; первая позиция — 1
bytes — массив байтов для записи в этот объект BLOB
offset — смещение в массиве bytes, с которого начинается чтение байтов для записи
len — количество байтов для записи в значение BLOB из массива байтов bytes
Возвращает:
количество записанных байтов
Выбрасывает:
SQLException — если при доступе к значению BLOB произошла ошибка или если pos меньше 1
SQLFeatureNotSupportedException — если драйвер JDBC не поддерживает этот метод
С версии:
1.4
См. также:
  • getBytes(long, int)

setBinaryStream

OutputStream setBinaryStream(long pos) throws SQLException
Получает поток, который можно использовать для записи в значение BLOB, представленное этим объектом Blob. Поток начинается с позиции pos. Байты, записываемые в поток, перезаписывают существующие байты в объекте Blob, начиная с позиции pos. Если при записи в поток достигнут конец значения Blob, длина значения Blob увеличивается, чтобы вместить дополнительные байты.

Примечание: Если указанное для pos значение превышает длину значения BLOB + 1, поведение не определено. Некоторые драйверы JDBC могут выбросить SQLException, тогда как другие драйверы могут поддерживать эту операцию.

Параметры:
pos — позиция в значении BLOB, с которой начинается запись; первая позиция — 1
Возвращает:
объект java.io.OutputStream, в который можно записывать данные
Выбрасывает:
SQLException — если при доступе к значению BLOB произошла ошибка или если pos меньше 1
SQLFeatureNotSupportedException — если драйвер JDBC не поддерживает этот метод
С версии:
1.4
См. также:
  • getBinaryStream()

truncate

void truncate(long len) throws SQLException
Усекает значение BLOB, представленное этим объектом Blob, до длины len байт.

Примечание: Если указанное для pos значение превышает длину значения BLOB + 1, поведение не определено. Некоторые драйверы JDBC могут выбросить SQLException, тогда как другие драйверы могут поддерживать эту операцию.

Параметры:
len — длина в байтах, до которой следует усечь значение BLOB, представленное этим объектом Blob
Выбрасывает:
SQLException — если при доступе к значению BLOB произошла ошибка или если len меньше 0
SQLFeatureNotSupportedException — если драйвер JDBC не поддерживает этот метод
С версии:
1.4

free

void free() throws SQLException
Закрывает объект Blob и освобождает удерживаемые им ресурсы.

Если объект Blob уже закрыт, вызов этого метода не оказывает никакого действия.

Выбрасывает:
SQLException — если при освобождении ресурсов объекта Blob произошла ошибка
SQLFeatureNotSupportedException — если драйвер JDBC не поддерживает этот метод
С версии:
1.6
См. также:
  • close()

getBinaryStream

InputStream getBinaryStream(long pos, long length) throws SQLException
Возвращает объект InputStream, содержащий часть значения Blob длиной length байт, начиная с байта, указанного параметром pos.
Параметры:
pos — смещение до первого байта извлекаемого частичного значения. Первый байт в Blob находится в позиции 1.
length — длина извлекаемого частичного значения в байтах
Возвращает:
InputStream, через который можно прочитать частичное значение Blob.
Выбрасывает:
SQLException — если pos меньше 1, если pos больше количества байтов в Blob или если pos + length превышает количество байтов в Blob
SQLFeatureNotSupportedException — если драйвер JDBC не поддерживает этот метод
С версии:
1.6

close

default void close() throws SQLException
Закрывает объект Blob и освобождает удерживаемые им ресурсы.

Если объект Blob уже закрыт, вызов этого метода не оказывает никакого действия.

Определено в:
close в интерфейсе AutoCloseable
Требования к реализации:
Реализация по умолчанию вызывает метод free().
Выбрасывает:
SQLException — если при освобождении ресурсов объекта Blob произошла ошибка
SQLFeatureNotSupportedException — если драйвер JDBC не поддерживает этот метод
С версии:
26
См. также:
  • free()

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в разделе Документация Java SE, содержащем более подробные описания для разработчиков, концептуальные обзоры, определения терминов, обходные решения и рабочие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторское право © 1993, 2026, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 1993, 2025, 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.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API