Пакет javax.sql.rowset.serial
Стандартные реализации JDBC RowSet могут использовать эти вспомогательные классы для сериализации отключённых объектов RowSet. Это полезно при передаче отключённого объекта RowSet по сети на другую виртуальную машину или между уровнями приложения.
1.0 SerialArray
Сериализуемое сопоставление значения SQL ARRAY в языке программирования Java.Класс
SerialArray предоставляет конструктор для создания экземпляра SerialArray из объекта Array, методы для получения базового типа и имени SQL для базового типа, а также методы для копирования всего объекта SerialArray или его части. 2.0 SerialBlob
Сериализуемое сопоставление значения SQL BLOB в языке программирования Java.Класс
SerialBlob предоставляет конструктор для создания экземпляра из объекта Blob. Обратите внимание, что объект Blob должен передать данные значения SQL BLOB клиенту до создания на его основе объекта SerialBlob. Данные значения SQL BLOB можно материализовать на клиенте в виде массива байтов (с помощью метода Blob.getBytes) или потока необработанных байтов (с помощью метода Blob.getBinaryStream). Методы
SerialBlob позволяют создать копию объекта SerialBlob в виде массива байтов или потока. Они также позволяют найти заданный шаблон байтов или объект Blob внутри объекта SerialBlob. 3.0 SerialClob
Сериализуемое сопоставление значения SQL CLOB в языке программирования Java.Класс
SerialClob предоставляет конструктор для создания экземпляра из объекта Clob. Обратите внимание, что объект Clob должен передать данные значения SQL CLOB клиенту до создания на его основе объекта SerialClob. Данные значения SQL CLOB можно материализовать на клиенте в виде потока символов Unicode. Методы
SerialClob позволяют получить подстроку из объекта SerialClob или найти начало шаблона символов. 5.0 SerialDatalink
Сериализуемое сопоставление значения SQL DATALINK в языке программирования Java. Значение DATALINK ссылается на файл вне базового источника данных, которым управляет исходный источник данных.Реализации
RowSet могут использовать метод RowSet.getURL() для получения объекта java.net.URL, который можно использовать для работы с внешними данными. java.net.URL url = rowset.getURL(1);
6.0 SerialJavaObject
Сериализуемое сопоставление значения SQL JAVA_OBJECT в языке программирования Java. Если экземпляр объекта Java реализует интерфейс Serializable, этот класс просто выполняет его сериализацию.Если сериализация невозможна, поскольку объект Java не сериализуется напрямую, этот класс попытается сериализовать все нестатические члены, чтобы обеспечить сериализацию состояния экземпляра объекта. Статические и transient-поля сериализовать нельзя; попытка сделать это приведёт к выбрасыванию исключения
SerialException. 7.0 SerialRef
Сериализуемое сопоставление между типом SQL REF и языком программирования Java.Класс
SerialRef предоставляет конструктор для создания экземпляра SerialRef из типа Ref, а также методы для получения и задания типа объекта Ref. 8.0 SerialStruct
Сериализуемое сопоставление структурированного типа SQL в языке программирования Java. Каждый атрибут, который ещё не является сериализуемым, преобразуется в сериализуемую форму; если атрибут сам является структурированным типом, каждый его атрибут, который ещё не является сериализуемым, также преобразуется в сериализуемую форму.Кроме того, если объект
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. Иными словами, если карта не указана, по умолчанию можно использовать карту типов соединения.
- Since:
- 1.5
| Класс | Описание |
|---|---|
| SerialArray | Сериализованная версия объекта Array, который представляет собой сопоставление значения SQL ARRAY в языке программирования Java. |
| SerialBlob | Сериализованное сопоставление значения SQL BLOB в языке программирования Java. |
| SerialClob | Сериализованное сопоставление значения SQL CLOB в языке программирования Java. |
| SerialDatalink | Сериализованное сопоставление значения SQL DATALINK в языке программирования Java. |
| SerialException | Указывает на ошибку сериализации или десериализации таких типов SQL, как BLOB, CLOB, STRUCT or ARRAY, а также таких типов SQL, как DATALINK and JAVAOBJECT
|
| SerialJavaObject | Сериализуемое сопоставление значения SQL JAVA_OBJECT в языке программирования Java. |
| SerialRef | Сериализованное сопоставление объекта Ref, который представляет собой сопоставление значения SQL REF в языке программирования Java. |
| SerialStruct | Сериализованное сопоставление структурированного типа SQL в языке программирования Java. |
| 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://docs.oracle.com/en/java/javase/25/docs/api/java.sql.rowset/javax/sql/rowset/serial/package-summary.html