Интерфейс Blob

Все известные реализующие классы:
SerialBlob
public interface Blob

Представление (отображение) в языке программирования Java™ SQL 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​(long pos, long length)

Возвращает объект InputStream , содержащий частичное значение Blob , начиная с байта, указанного pos, и имеющее длину length байт.

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, в виде массива байтов. Этот массив содержит до length последовательных байтов, начиная с позиции pos.

Параметры:
pos - порядковый номер первого байта в значении BLOB, которое нужно извлечь; первый байт имеет позицию 1
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, больше длины + 1 значения BLOB, то поведение не определено. Некоторые драйверы 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, больше длины + 1 значения BLOB, то поведение не определено. Некоторые драйверы 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, больше длины + 1 значения BLOB, то поведение не определено. Некоторые драйверы 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, больше длины + 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 обрабатываются как no-op.

Выбрасывает:
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 + длина больше числа байтов в Blob
SQLFeatureNotSupportedException - если драйвер JDBC не поддерживает этот метод
С:
1.6

© 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/java/sql/Blob.html

Spec-Zone .ru
спецификации, руководства, описания, API