Пакет 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
Поток ввода, используемый для пользовательского сопоставления типов определённых пользователем (UDT). ОбъектSQLInputImpl — это поток ввода, содержащий поток значений, которые являются атрибутами UDT. Этот класс используется драйвером за кулисами при вызове метода getObject на структурированном или раздельном типе 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 с пользовательским сопоставлением. Если это так, в карте типов будет запись, содержащая объект класса для класса, который реализует интерфейс 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 | Сериализованная версия объекта |
| SerialBlob | Сериализованное сопоставление в языке программирования Java значения SQL |
| SerialClob | Сериализованное сопоставление в языке программирования Java значения SQL |
| SerialDatalink | Сериализованное сопоставление в языке программирования Java значения SQL |
| SerialJavaObject | Сериализуемое сопоставление в языке программирования Java значения SQL |
| SerialRef | Сериализованное сопоставление объекта |
| SerialStruct | Сериализованное сопоставление в языке программирования Java структурированного типа SQL. |
| SQLInputImpl | Поток ввода, используемый для пользовательского сопоставления типов, определённых пользователем (UDT). |
| SQLOutputImpl | Поток вывода для записи атрибутов пользовательского типа, определённого пользователем (UDT), сопоставленного пользовательским способом, обратно в базу данных. |
| Исключение | Описание |
|---|---|
| SerialException | Указывает ошибку при сериализации или десериализации типов SQL, таких как |
© 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.rowset/javax/sql/rowset/serial/package-summary.html