Spec-Zone.ru › OpenJDK 25

Интерфейс Blob

Все известные реализующие классы:
SerialBlob
public interface Blob
Представление (сопоставление) значения 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 должны быть полностью реализованы, если драйвер JDBC поддерживает этот тип данных.

Начиная с:
1.2

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

Модификатор и тип Метод Описание
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 и высвобождает занимаемые им ресурсы. После вызова метода free объект становится недействительным.

После вызова free любая попытка вызвать метод, отличный от free, приведёт к выбрасыванию SQLException. Если free вызывается несколько раз, последующие вызовы free не выполняют никаких действий.

Вызывает исключение:
SQLException — если при освобождении ресурсов Blob произошла ошибка
SQLFeatureNotSupportedException — если драйвер JDBC не поддерживает этот метод
Начиная с:
1.6

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

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в разделе Документация Java SE, где приведены более подробные описания для разработчиков, включая концептуальные обзоры, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторские права © 1993, 2025, 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.
https://docs.oracle.com/en/java/javase/25/docs/api/java.sql/java/sql/Blob.html

Spec-Zone.ru

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