Spec-Zone.ru › OpenJDK 25

Интерфейс SQLData

public interface SQLData
Интерфейс, используемый для пользовательского сопоставления определяемого пользователем типа SQL (UDT) с классом языка программирования Java. Объект класса, реализующего интерфейс 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(SQLInput stream, String typeName)
Заполняет этот объект данными, считанными из базы данных.
void writeSQL(SQLOutput stream)
Записывает этот объект в указанный поток данных SQL, преобразуя его обратно в значение SQL в источнике данных.

Подробное описание методов

getSQLTypeName

String getSQLTypeName() throws SQLException
Возвращает полное имя определяемого пользователем типа SQL, который представляет этот объект. Этот метод вызывается драйвером JDBC для получения имени экземпляра UDT, сопоставляемого с этим экземпляром SQLData.
Возвращает:
имя типа, переданное методу readSQL при создании и заполнении этого объекта
Выбрасывает:
SQLException — если произошла ошибка доступа к базе данных
SQLFeatureNotSupportedException — если драйвер JDBC не поддерживает этот метод
С версии:
1.2

readSQL

void readSQL(SQLInput stream, String typeName) throws SQLException
Заполняет этот объект данными, считанными из базы данных. Реализация метода должна следовать следующему протоколу:
  • Необходимо считать из указанного входного потока каждый атрибут или элемент типа SQL. Для этого вызывается метод входного потока для чтения каждого элемента в порядке их появления в определении типа SQL.
  • Затем метод readSQL присваивает данные соответствующим полям или элементам (этого или других объектов). В частности, для выполнения следующих действий он должен вызывать соответствующие методы чтения (методы SQLInput.readString, SQLInput.readBigDecimal и т. д.): для отдельного типа — считать его единственный элемент данных; для структурированного типа — считать значение каждого атрибута типа SQL.
Перед вызовом этого метода драйвер JDBC инициализирует входной поток картой типов, которая используется соответствующим методом чтения SQLInput потока.
Параметры:
stream — объект SQLInput, из которого считываются данные значения, для которого выполняется пользовательское сопоставление
typeName — имя типа SQL значения в потоке данных
Выбрасывает:
SQLException — если произошла ошибка доступа к базе данных
SQLFeatureNotSupportedException — если драйвер JDBC не поддерживает этот метод
С версии:
1.2
См. также:
  • SQLInput

writeSQL

void writeSQL(SQLOutput stream) throws SQLException
Записывает этот объект в указанный поток данных SQL, преобразуя его обратно в значение SQL в источнике данных. Реализация метода должна следовать следующему протоколу:
Необходимо записать в указанный выходной поток каждый атрибут типа SQL. Для этого вызывается метод выходного потока для записи каждого элемента в порядке их появления в определении типа SQL. В частности, для выполнения следующих действий необходимо вызывать соответствующие методы записи SQLOutput (writeInt, writeString и т. д.): для отдельного типа — записать его единственный элемент данных; для структурированного типа — записать значение каждого атрибута типа SQL.
Параметры:
stream — объект SQLOutput, в который записываются данные значения, для которого выполнялось пользовательское сопоставление
Выбрасывает:
SQLException — если произошла ошибка доступа к базе данных
SQLFeatureNotSupportedException — если драйвер JDBC не поддерживает этот метод
С версии:
1.2
См. также:
  • SQLOutput

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков, обзор основных понятий, определения терминов, обходные решения и работающие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторские права © 1993, 2025, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API