Пакет javax.sql.rowset.serial
Предоставляет служебные классы для обеспечения сериализуемых сопоставлений между типами SQL и типами данных в языке программирования Java.
См.: Описание
| Класс | Описание |
|---|---|
| SerialArray | Сериализованная версия объекта |
| SerialBlob | Сериализованное сопоставление в языке программирования Java значения SQL типа |
| SerialClob | Сериализованное сопоставление в языке программирования Java значения SQL типа |
| SerialDatalink | Сериализованное сопоставление в языке программирования Java значения SQL типа |
| SerialJavaObject | Сериализуемое сопоставление в языке программирования Java значения SQL типа |
| SerialRef | Сериализованное сопоставление объекта |
| SerialStruct | Сериализованное сопоставление в языке программирования Java структурированного типа SQL. |
| SQLInputImpl | Поток ввода, используемый для пользовательского сопоставления типов данных (UDTs). |
| SQLOutputImpl | Поток вывода для записи атрибутов пользовательского типа данных (UDT) обратно в базу данных. |
| Исключение | Описание |
|---|---|
| SerialException | Указывает ошибку при сериализации или десериализации типов SQL, таких как |
Описание пакета javax.sql.rowset.serial
Предоставляет служебные классы для обеспечения сериализуемых сопоставлений между типами SQL и типами данных в языке программирования Java.
Стандартные реализации 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 могут быть материализованы на клиенте как поток символов Unicode. Методы
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 структурированного типа в базе данных и методы для получения его значений атрибутов. 9.0 SQLInputImpl
Поток ввода, используемый для пользовательского сопоставления типов данных (UDTs). ОбъектSQLInputImpl представляет собой поток ввода, содержащий поток значений, являющихся атрибутами UDT. Этот класс используется драйвером в фоновом режиме при вызове метода getObject на структурированном или DISTINCT типе SQL, который имеет пользовательское сопоставление; программист никогда не вызывает методы 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. Иными словами, если карта не указана, карта типов соединения может использоваться по умолчанию.
© 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.