Интерфейс 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, а не кодом приложения.
- С момента:
- 1.2
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
String |
getSQLTypeName() |
Возвращает полное имя SQL-типа данных, представленного этим объектом. |
void |
readSQL |
Заполняет этот объект данными, считанными из базы данных. |
void |
writeSQL |
Записывает этот объект в заданный SQL-поток данных, преобразуя его обратно в значение SQL в источнике данных. |
Подробное описание методов
getSQLTypeName
String getSQLTypeName() throws SQLException
SQLData. - Возвращает:
- имя типа, переданное методу
readSQLпри создании и заполнении этого объекта - Исключения:
-
SQLException- если произошла ошибка доступа к базе данных -
SQLFeatureNotSupportedException- если драйвер JDBC не поддерживает этот метод - С момента:
- 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 не поддерживает этот метод - С момента:
- 1.2
- См. также:
writeSQL
void writeSQL(SQLOutput stream) throws SQLException
Она должна записать каждый атрибут SQL-типа в заданный поток вывода. Это делается путем вызова метода потока вывода для записи каждого элемента в том порядке, в котором они появляются в SQL-определении типа. В частности, он должен вызвать соответствующий метод записи
SQLOutput (writeInt, writeString, и т. д.) для выполнения следующих действий: для отдельного типа — записать его единственный элемент данных; для структурированного типа — записать значение для каждого атрибута SQL-типа.- Параметры:
-
stream- объектSQLOutputдля записи данных для значения, которое было пользовательски сопоставлено - Исключения:
-
SQLException- если произошла ошибка доступа к базе данных -
SQLFeatureNotSupportedException- если драйвер JDBC не поддерживает этот метод - С момента:
- 1.2
- См. также:
© 1993, 2023, 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/21/docs/api/java.sql/java/sql/SQLData.html