Пакет javax.sql.rowset.serial
Стандартные реализации JDBC RowSet могут использовать эти служебные классы для помощи в сериализации отключенных RowSet объектов. Это полезно при передаче отключенного RowSet объекта по сети в другую виртуальную машину или через слои в приложении.
1.0 SerialArray
Сериализуемое сопоставление в языке программирования Java значения SQL ARRAY.Класс
SerialArray предоставляет конструктор для создания экземпляра SerialArray из объекта Array, методы для получения базового типа и имени SQL для базового типа, а также методы для копирования всего или части объекта SerialArray. 2.0 SerialBlob
Сериализуемое сопоставление в языке программирования Java значения SQL BLOB.Класс
SerialBlob предоставляет конструктор для создания экземпляра из объекта Blob. Обратите внимание, что объект Blob должен загрузить данные значения SQL BLOB на клиент перед построением объекта SerialBlob из него. Данные значения SQL BLOB могут быть материализованы на клиенте как массив байтов (с использованием метода Blob.getBytes) или как поток неинтерпретированных байтов (с использованием метода Blob.getBinaryStream). Методы
SerialBlob позволяют создать копию объекта SerialBlob в виде массива байтов или потока. Они также позволяют найти заданный шаблон байтов или объект Blob внутри объекта SerialBlob. 3.0 SerialClob
Сериализуемое сопоставление в языке программирования Java значения SQL CLOB.Класс
SerialClob предоставляет конструктор для создания экземпляра из объекта Clob. Обратите внимание, что объект Clob должен загрузить данные значения SQL CLOB на клиент перед построением объекта SerialClob из него. Данные значения SQL CLOB могут быть материализованы на клиенте как поток символов Юникода. Методы
SerialClob позволяют получить подстроку из объекта SerialClob или найти начало шаблона символов. 5.0 SerialDatalink
Сериализуемое сопоставление в языке программирования Java значения SQL DATALINK. Значение DATALINK ссылается на файл вне основного источника данных, который управляется исходным источником данных.Реализации
RowSet могут использовать метод RowSet.getURL() для получения объекта java.net.URL, который может использоваться для управления внешними данными.
java.net.URL url = rowset.getURL(1);
6.0 SerialJavaObject
Сериализуемое сопоставление в языке программирования Java значения SQL JAVA_OBJECT. Предполагая, что экземпляр объекта Java реализует интерфейс Serializable, это просто оборачивает процесс сериализации.Однако, если сериализация невозможна в случае, когда объект Java не является непосредственно сериализуемым, этот класс попытается сериализовать все нестатические члены, чтобы разрешить сериализацию состояния объекта. Статические или транзиентные поля не могут быть сериализованы, и попытка сделать это приведет к исключению
SerialException. 7.0 SerialRef
Сериализуемое сопоставление между типом SQL REF и языком программирования Java.Класс
SerialRef предоставляет конструктор для создания экземпляра SerialRef из типа Ref и методы для получения и установки типа объекта Ref. 8.0 SerialStruct
Сериализуемое сопоставление в языке программирования Java структуры SQL. Каждый атрибут, который еще не сериализуем, сопоставляется с сериализуемой формой, а если атрибут сам является структурированным типом, каждый его атрибут, который еще не сериализуем, сопоставляется с сериализуемой формой.Кроме того, если объект
Map передается одному из конструкторов или методу getAttributes, структура типа настраивается в соответствии с сопоставлением, указанным в объекте Map. Класс
SerialStruct предоставляет конструктор для создания экземпляра из объекта Struct, метод для получения имени типа SQL структуры SQL в базе данных и методы для получения значений атрибутов. 9.0 SQLInputImpl
Поток ввода, используемый для пользовательского сопоставления типов данных (UDT). ОбъектSQLInputImpl представляет собой поток ввода, содержащий поток значений, которые являются атрибутами UDT. Этот класс используется драйвером в фоновом режиме, когда вызывается метод getObject для структуры SQL или DISTINCT типа с пользовательским сопоставлением; программист никогда не вызывает методы SQLInputImpl напрямую. Класс
SQLInputImpl предоставляет набор методов чтения, аналогичных методам получения ResultSet. Эти методы позволяют прочитать значения в объекте SQLInputImpl. Метод wasNull используется для определения, было ли последнее прочитанное значение SQL NULL. Когда вызывается конструктор или метод получения, принимающий объект
Map, драйвер JDBC вызывает метод SQLData.getSQLType для определения типа SQL UDT, который настраивается. Драйвер создает экземпляр SQLInputImpl, заполняя его атрибутами UDT. Затем драйвер передает поток ввода методу SQLData.readSQL, который, в свою очередь, вызывает методы SQLInputImpl для чтения атрибутов из потока ввода. 10.0 SQLOutputImpl
Поток вывода для записи атрибутов настраиваемого типа данных пользователя (UDT) обратно в базу данных. Драйвер использует этот интерфейс внутренне, и его методы никогда не вызываются программистом приложения напрямую.Когда приложение вызывает метод
PreparedStatement.setObject, драйвер проверяет, является ли значение, которое нужно записать, UDT с пользовательским сопоставлением. Если это так, в карте типов будет запись, содержащая объект Class для класса, реализующего SQLData для этого UDT. Если записываемое значение является экземпляром SQLData, драйвер создаст экземпляр SQLOutputImpl и передаст его методу SQLData.writeSQL. Метод writeSQL в свою очередь вызывает соответствующие методы записи SQLOutputImpl для записи данных из объекта SQLData в поток вывода SQLOutputImpl в виде представления типа SQL пользователя. Настройка сопоставления
API JDBC предоставляет механизмы для сопоставления структуры SQL или типа DISTINCT с языком программирования Java. Обычно структура сопоставляется с классом, а ее атрибуты сопоставляются с полями в классе. (Тип DISTINCT можно рассматривать как имеющий один атрибут.) Однако существует много других возможностей, и может быть любое количество различных сопоставлений. Программист определяет сопоставление, реализовав интерфейс SQLData. Например, если структура SQL с именем AUTHORS имеет атрибуты NAME, TITLE и PUBLISHER, она может быть сопоставлена с классом Java с именем Authors. Класс Authors может иметь поля name, title и publisher, которым сопоставляются атрибуты AUTHORS. В таком случае реализация SQLData может выглядеть следующим образом:
public class Authors implements SQLData {
public String name;
public String title;
public String publisher;
private String sql_type;
public String getSQLTypeName() {
return sql_type;
}
public void readSQL(SQLInput stream, String type)
throws SQLException {
sql_type = type;
name = stream.readString();
title = stream.readString();
publisher = stream.readString();
}
public void writeSQL(SQLOutput stream) throws SQLException {
stream.writeString(name);
stream.writeString(title);
stream.writeString(publisher);
}
}
Объект java.util.Map используется для связывания структуры SQL со своим сопоставлением с классом Authors. Следующий фрагмент кода показывает, как может быть создан объект Map и ему может быть предоставлена запись, связывающая AUTHORS и Authors.
java.util.Map map = new java.util.HashMap();
map.put("SCHEMA_NAME.AUTHORS", Class.forName("Authors");
Объект Map map теперь содержит запись с полным именем структуры SQL и объектом Class для класса Authors. Он может быть передан методу, чтобы сообщить драйверу, как сопоставить AUTHORS с Authors. Для отключенного объекта RowSet настройка сопоставления может быть выполнена только когда объект Map передается методу или конструктору, который будет выполнять настройку сопоставления. Ситуация отличается для подключенных объектов RowSet, так как они поддерживают соединение с источником данных. Метод, выполняющий настройку сопоставления и вызываемый отключенным объектом RowSet, может использовать объект Map, который связан с объектом Connection, используемым. Иными словами, если карта не указана, по умолчанию используется карта типов подключения.
| Класс | Описание |
|---|---|
| SerialArray | Сериализованная версия объекта Array, который является отображением в языке программирования Java значения SQL ARRAY. |
| SerialBlob | Сериализованное отображение в языке программирования Java значения SQL BLOB. |
| SerialClob | Сериализованное отображение в языке программирования Java значения SQL CLOB. |
| SerialDatalink | Сериализованное отображение в языке программирования Java значения SQL DATALINK. |
| SerialException | Указывает ошибку при сериализации или десериализации типов SQL, таких как BLOB, CLOB, STRUCT or ARRAY, в дополнение к типам SQL, таким как DATALINK and JAVAOBJECT.
|
| SerialJavaObject | Сериализуемое отображение в языке программирования Java значения SQL JAVA_OBJECT. |
| SerialRef | Сериализованное отображение объекта Ref, который является отображением в языке программирования Java значения SQL REF. |
| SerialStruct | Сериализованное отображение в языке программирования Java структурированного типа SQL. |
| SQLInputImpl | Поток ввода, используемый для пользовательского отображения типов данных, определенных пользователем (UDT). |
| SQLOutputImpl | Поток вывода для записи атрибутов пользовательского типа данных, определенного пользователем (UDT), обратно в базу данных. |
© 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.rowset/javax/sql/rowset/serial/package-summary.html