Интерфейс Blob
- Все известные реализующие классы:
SerialBlob
public interface Blob
BLOB. 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 |
Возвращает объект InputStream, который содержит частичное значение Blob, начиная с байта, указанного pos, длина которого равна length байтам. |
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, в виде массива байтов. Этот массив содержит до length последовательных байтов, начиная с позиции pos.- Параметры:
-
pos- порядковый номер первого байта в значенииBLOB, которое требуется извлечь; первый байт находится на позиции 1 -
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, больше, чем длина+1 значения BLOB, поведение не определено. Некоторые драйверы 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, больше, чем длина+1 значения BLOB, поведение не определено. Некоторые драйверы 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, больше, чем длина+1 значения BLOB, поведение не определено. Некоторые драйверы 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, больше, чем длина+1 значения BLOB, поведение не определено. Некоторые драйверы 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, начиная с байта, указанного в pos, и длиной length байтов.- Параметры:
-
pos- смещение до первого байта частичного значения для извлечения. Первый байт вBlobнаходится на позиции 1. -
length- длина в байтах частичного значения для извлечения - Возвращает:
-
Объект
InputStream, через который можно считать частичное значениеBlob. - Возникает при:
-
SQLException- если pos меньше 1 или если pos больше числа байтов вBlobили если pos + length больше числа байтов вBlob -
SQLFeatureNotSupportedException- если JDBC драйвер не поддерживает этот метод - С:
- 1.6
© 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://download.java.net/java/early_access/jdk24/docs/api/java.sql/java/sql/Blob.html