Spec-Zone.ru › OpenJDK 24

Пакет javax.sql.rowset.serial

package 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 могут быть материализованы на клиенте как поток символов Юникода.

Методы 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 для структурированного или отдельного типа 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, используемым. Итак, другими словами, если карта не указана, карта типов соединения может использоваться по умолчанию.

Since:
1.5
Пакет Описание
javax.sql.rowset
Стандартные интерфейсы и базовые классы для JDBC RowSet реализаций.
javax.sql.rowset.spi
Стандартные классы и интерфейсы, которые должен использовать сторонний поставщик в своей реализации поставщика синхронизации.
Класс Описание
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, 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://download.java.net/java/early_access/jdk24/docs/api/java.sql.rowset/javax/sql/rowset/serial/package-summary.html

Spec-Zone.ru

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