Интерфейс SQLData
public interface SQLData
SQLData, будет помещен в соответствующую карту типов объекта Connection вместе с именем SQL-типа UDT, для которого выполняется пользовательское сопоставление. Как правило, реализация SQLData определяет поле для каждого атрибута структурированного типа SQL или одно поле для типа SQL DISTINCT. При получении UDT из источника данных с помощью метода ResultSet.getObject он будет сопоставлен с экземпляром этого класса. Программист может работать с экземпляром этого класса так же, как с любым другим объектом языка программирования Java, а затем сохранить внесенные изменения, вызвав метод PreparedStatement.setObject, который выполнит обратное сопоставление с типом SQL.
Предполагается, что реализацию класса для пользовательского сопоставления будет выполнять инструмент. В типичном случае программисту достаточно указать имя UDT SQL, имя класса, с которым он сопоставляется, и имена полей, с которыми сопоставляется каждый атрибут 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, 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://docs.oracle.com/en/java/javase/25/docs/api/java.sql/java/sql/SQLData.html