Интерфейс 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() Этот метод освобождает объект |
InputStream |
getBinaryStream() Возвращает значение |
InputStream |
getBinaryStream(long pos,
long length) Возвращает объект |
byte[] |
getBytes(long pos,
int length) Возвращает все или часть значения |
long |
length() Возвращает количество байтов в значении |
long |
position(Blob pattern,
long start) Возвращает позицию байта в значении |
long |
position(byte[] pattern,
long start) Возвращает позицию байта, в которой указанный массив байтов |
OutputStream |
setBinaryStream(long pos) Возвращает поток, который может использоваться для записи в значение |
int |
setBytes(long pos,
byte[] bytes) Записывает заданный массив байтов в значение |
int |
setBytes(long pos,
byte[] bytes,
int offset,
int len) Записывает весь или часть заданного массива |
void |
truncate(long 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- количество последовательных байтов для копирования; значение 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 и возвращает количество записанных байтов. Запись начинается с позиции 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 обрабатываются как нетранзакционные.
- Исключения:
-
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, 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.