Интерфейс Blob
- Все суперинтерфейсы:
AutoCloseable
- Все известные реализующие классы:
SerialBlob
public interface Blob extends AutoCloseable
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 |
Возвращает объект InputStream, содержащий часть значения Blob длиной length байт, начиная с байта, указанного параметром pos. |
byte[] |
getBytes |
Получает всё значение BLOB или его часть, представленную этим объектом Blob, в виде массива байтов. |
long |
length() |
Возвращает количество байтов в значении BLOB, обозначенном этим объектом Blob. |
long |
position |
Получает позицию байта, с которой начинается указанный массив байтов pattern в значении BLOB, представленном этим объектом Blob. |
long |
position |
Получает позицию байта в значении BLOB, обозначенном этим объектом Blob, с которой начинается pattern. |
OutputStream |
setBinaryStream |
Получает поток, который можно использовать для записи в значение BLOB, представленное этим объектом Blob. |
int |
setBytes |
Записывает указанный массив байтов в значение BLOB, представленное этим объектом Blob, начиная с позиции pos, и возвращает количество записанных байтов. |
int |
setBytes |
Записывает весь указанный массив byte или его часть в значение BLOB, представленное этим объектом Blob, и возвращает количество записанных байтов. |
void |
truncate |
Усекает значение 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
- См. также:
getBinaryStream
InputStream getBinaryStream() throws SQLException
BLOB, обозначенное этим экземпляром Blob, в виде потока.- Возвращает:
- поток, содержащий данные
BLOB - Выбрасывает:
-
SQLException— если при доступе к значениюBLOBпроизошла ошибка -
SQLFeatureNotSupportedException— если драйвер JDBC не поддерживает этот метод - С версии:
- 1.2
- См. также:
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
- См. также:
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
- См. также:
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
- См. также:
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
- См. также:
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
- См. также:
© 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.