Интерфейс SQLData
public interface SQLData
SQLData, будет введён в соответствующую карту типов объекта Connection вместе с SQL именем UDT, для которого он является пользовательским сопоставлением. Обычно реализация SQLData определяет поле для каждого атрибута SQL структурированного типа или одно поле для SQL DISTINCT типа. При получении UDT из источника данных с помощью метода ResultSet.getObject, он будет сопоставлен как экземпляр этого класса. Программист может работать с этим экземпляром класса так же, как и с любым другим объектом в языке программирования Java, а затем сохранить внесённые изменения, вызвав метод PreparedStatement.setObject, который сопоставит его обратно с типом SQL.
Ожидается, что реализация класса для пользовательского сопоставления будет выполнена инструментом. В типичной реализации программист просто предоставит имя SQL UDT, имя класса, которому он сопоставляется, и имена полей, которым будет сопоставлен каждый атрибут UDT. Инструмент воспользуется этой информацией для реализации методов SQLData.readSQL и SQLData.writeSQL. Метод readSQL вызывает соответствующие методы SQLInput для чтения каждого атрибута из объекта SQLInput, а метод writeSQL вызывает методы SQLOutput для записи каждого атрибута обратно в источник данных через объект SQLOutput.
Приложение не должно напрямую вызывать методы SQLData, а методы SQLInput и SQLOutput вызываются внутри методами SQLData, а не кодом приложения.
- Since:
- 1.2
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
String |
getSQLTypeName() |
Возвращает полное имя SQL пользовательского типа данных, которое представляет этот объект. |
void |
readSQL |
Заполняет этот объект данными, считанными из базы данных. |
void |
writeSQL |
Записывает этот объект в заданный SQL поток данных, преобразовывая его обратно в его SQL значение в источнике данных. |
Подробное описание методов
getSQLTypeName
String getSQLTypeName() throws SQLException
SQLData.- Возвращает:
- имя типа, переданное в метод
readSQLпри создании и заполнении этого объекта - Имеет исключения:
-
SQLException- если произошла ошибка доступа к базе данных -
SQLFeatureNotSupportedException- если драйвер JDBC не поддерживает этот метод - Since:
- 1.2
readSQL
void readSQL(SQLInput stream, String typeName) throws SQLException
- Он должен прочитать каждый атрибут или элемент SQL типа из заданного потока. Это делается путем вызова метода потока для чтения каждого элемента в порядке их появления в SQL определении типа.
- Метод
readSQLзатем присваивает данные соответствующим полям или элементам (этого или других объектов). В частности, он должен вызвать соответствующий метод чтения (SQLInput.readString,SQLInput.readBigDecimalи т. д.) для выполнения следующего: для дискретного типа прочитать его единственный элемент данных; для структурированного типа прочитать значение для каждого атрибута SQL типа.
SQLInput потока.- Параметры:
-
stream- объектSQLInput, из которого следует прочитать данные для значения, которое пользовательски сопоставлено -
typeName- имя SQL типа значения в потоке данных - Имеет исключения:
-
SQLException- если произошла ошибка доступа к базе данных -
SQLFeatureNotSupportedException- если драйвер JDBC не поддерживает этот метод - Since:
- 1.2
- См. также:
writeSQL
void writeSQL(SQLOutput stream) throws SQLException
Она должна записать каждый атрибут SQL типа в заданный поток вывода. Это делается путем вызова метода потока вывода для записи каждого элемента в порядке их появления в SQL определении типа. В частности, она должна вызвать соответствующий метод записи
SQLOutput (writeInt, writeString и т. д.) для выполнения следующего: для дискретного типа, записать его единственный элемент данных; для структурированного типа, записать значение для каждого атрибута SQL типа.- Параметры:
-
stream- объектSQLOutput, в который следует записать данные для значения, которое было пользовательски сопоставлено - Имеет исключения:
-
SQLException- если произошла ошибка доступа к базе данных -
SQLFeatureNotSupportedException- если драйвер JDBC не поддерживает этот метод - Since:
- 1.2
- См. также:
© 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/SQLData.html