Интерфейс SQLData
public interface SQLData
Интерфейс, используемый для пользовательского сопоставления SQL типа данных (UDT) с классом в языке программирования Java. Объект класса для класса, реализующего интерфейс 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(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 типа.
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
© 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.
https://docs.oracle.com/en/java/javase/11/docs/api/java.sql/java/sql/SQLData.html