Spec-Zone.ru › OpenJDK 25

Интерфейс WebRowSet

Все суперинтерфейсы:
AutoCloseable, CachedRowSet, Joinable, ResultSet, RowSet, Wrapper
Все известные подинтерфейсы:
FilteredRowSet, JoinRowSet
public interface WebRowSet extends CachedRowSet
Стандартный интерфейс, который должны реализовывать все реализации WebRowSet.

1.0 Обзор

WebRowSetImpl предоставляет стандартную эталонную реализацию, которую при необходимости можно расширить.

Определение стандартной XML-схемы WebRowSet доступно по следующему URI:

  • http://xmlns.jcp.org/xml/ns//jdbc/webrowset.xsd
Она описывает стандартный формат XML-документа, необходимый для представления объекта RowSet в XML, и должна использоваться всеми стандартными реализациями интерфейса WebRowSet для обеспечения совместимости. Кроме того, схема WebRowSet использует специальные аннотации SQL/XML Schema, обеспечивая тем самым более высокую кроссплатформенную совместимость. Эта работа в настоящее время ведется в организации ISO. Определение SQL/XML доступно по следующему URI:
  • http://standards.iso.org/iso/9075/2002/12/sqlxml.xsd
Определение схемы описывает внутренние данные объекта RowSet в трех отдельных областях:
  • свойства — эти свойства описывают стандартные свойства поставщика синхронизации, а также более общие свойства RowSet.
  • метаданные — здесь описываются метаданные, связанные с табличной структурой, которой управляет объект WebRowSet. Описанные метаданные тесно соответствуют метаданным, доступным через базовый интерфейс java.sql.ResultSet.
  • данные — здесь описываются исходные данные (состояние данных после последнего заполнения или последней синхронизации объекта WebRowSet) и текущие данные. Отслеживая разницу между исходными и текущими данными, объект WebRowSet сохраняет возможность синхронизировать изменения своих данных с исходным источником данных.

2.0 Состояния WebRowSet

В следующих разделах показано, как реализация WebRowSet должна использовать XML-схему для описания операций обновления, вставки и удаления, а также для описания состояния объекта WebRowSet в XML.

2.1 Состояние 1 — вывод объекта WebRowSet в XML

В этом примере создается объект WebRowSet и заполняется простой таблицей из 2 столбцов и 5 строк из источника данных. Наличие 5 строк в объекте WebRowSet позволяет представить их в XML. Метаданные, описывающие различные стандартные свойства JavaBeans, определенные в интерфейсе RowSet, а также стандартные свойства, определенные в интерфейсе CachedRowSet, содержат ключевые сведения, описывающие свойства WebRowSet. При выводе объекта WebRowSet в XML с помощью стандартных методов writeXml внутренние свойства описываются следующим образом:
 
 <properties>
       <command>select co1, col2 from test_table</command>
      <concurrency>1</concurrency>
      <datasource/>
      <escape-processing>true</escape-processing>
      <fetch-direction>0</fetch-direction>
      <fetch-size>0</fetch-size>
      <isolation-level>1</isolation-level>
      <key-columns/>
      <map/>
      <max-field-size>0</max-field-size>
      <max-rows>0</max-rows>
      <query-timeout>0</query-timeout>
      <read-only>false</read-only>
      <rowset-type>TRANSACTION_READ_UNCOMMITTED</rowset-type>
      <show-deleted>false</show-deleted>
      <table-name/>
      <url>jdbc:thin:oracle</url>
      <sync-provider>
              <sync-provider-name>.com.rowset.provider.RIOptimisticProvider</sync-provider-name>
              <sync-provider-vendor>Oracle Corporation</sync-provider-vendor>
              <sync-provider-version>1.0</sync-provider-name>
              <sync-provider-grade>LOW</sync-provider-grade>
              <data-source-lock>NONE</data-source-lock>
      </sync-provider>
 </properties>
  
Метаданные, описывающие структуру WebRowSet, представлены в XML, как подробно показано ниже. Обратите внимание, что оба столбца описаны между тегами column-definition.
 
 <metadata>
      <column-count>2</column-count>
      <column-definition>
              <column-index>1</column-index>
              <auto-increment>false</auto-increment>
              <case-sensitive>true</case-sensitive>
              <currency>false</currency>
              <nullable>1</nullable>
              <signed>false</signed>
              <searchable>true</searchable>
              <column-display-size>10</column-display-size>
              <column-label>COL1</column-label>
              <column-name>COL1</column-name>
              <schema-name/>
              <column-precision>10</column-precision>
              <column-scale>0</column-scale>
              <table-name/>
              <catalog-name/>
              <column-type>1</column-type>
              <column-type-name>CHAR</column-type-name>
      </column-definition>
      <column-definition>
              <column-index>2</column-index>
              <auto-increment>false</auto-increment>
              <case-sensitive>false</case-sensitive>
              <currency>false</currency>
              <nullable>1</nullable>
              <signed>true</signed>
              <searchable>true</searchable>
              <column-display-size>39</column-display-size>
              <column-label>COL2</column-label>
              <column-name>COL2</column-name>
              <schema-name/>
              <column-precision>38</column-precision>
              <column-scale>0</column-scale>
              <table-name/>
              <catalog-name/>
              <column-type>3</column-type>
              <column-type-name>NUMBER</column-type-name>
      </column-definition>
 </metadata>
 
После описания представления свойств и метаданных ниже показано, как содержимое объекта WebRowSet описывается в XML. Обратите внимание: это описание объекта WebRowSet, который не изменялся с момента создания. Тег currentRow соответствует каждой строке табличной структуры, предоставляемой объектом WebRowSet. Тег columnValue может содержать тег stringData или binaryData в зависимости от типа SQL, которому соответствует значение XML. Тег binaryData содержит данные в кодировке Base64 и обычно используется для данных типов BLOB и CLOB.
 
 <data>
      <currentRow>
              <columnValue>
                      firstrow
              </columnValue>
              <columnValue>
                      1
              </columnValue>
      </currentRow>
      <currentRow>
              <columnValue>
                      secondrow
              </columnValue>
              <columnValue>
                      2
              </columnValue>
      </currentRow>
      <currentRow>
              <columnValue>
                      thirdrow
              </columnValue>
              <columnValue>
                      3
              </columnValue>
      </currentRow>
      <currentRow>
              <columnValue>
                      fourthrow
              </columnValue>
              <columnValue>
                      4
              </columnValue>
      </currentRow>
 </data>
 

2.2 Состояние 2 — удаление строки

Чтобы удалить строку в объекте WebRowSet, достаточно перейти к удаляемой строке, а затем вызвать метод deleteRow, как и в любом другом объекте RowSet. Следующие две строки кода, в которых wrs — это объект WebRowSet, удаляют третью строку.
     wrs.absolute(3);
     wrs.deleteRow();
 
В XML-описании третья строка помечена как deleteRow, что удаляет третью строку из объекта WebRowSet.
 
 <data>
      <currentRow>
              <columnValue>
                      firstrow
              </columnValue>
              <columnValue>
                      1
              </columnValue>
      </currentRow>
      <currentRow>
              <columnValue>
                      secondrow
              </columnValue>
              <columnValue>
                      2
              </columnValue>
      </currentRow>
      <deleteRow>
              <columnValue>
                      thirdrow
              </columnValue>
              <columnValue>
                      3
              </columnValue>
      </deleteRow>
      <currentRow>
              <columnValue>
                      fourthrow
              </columnValue>
              <columnValue>
                      4
              </columnValue>
      </currentRow>
 </data>
 

2.3 Состояние 3 — вставка строки

Объект WebRowSet может вставить новую строку: для этого нужно перейти к строке вставки, вызвать соответствующие методы обновления для каждого столбца строки, а затем вызвать метод insertRow.
 
 wrs.moveToInsertRow();
 wrs.updateString(1, "fifththrow");
 wrs.updateString(2, "5");
 wrs.insertRow();
 
Следующий фрагмент кода изменяет значение второго столбца только что вставленной строки. Обратите внимание, что этот код применим, когда новые строки вставляются сразу после текущей строки, поэтому метод next перемещает курсор к нужной строке. Вызов метода acceptChanges записывает изменение в источник данных.
 wrs.moveToCurrentRow();
 wrs.next();
 wrs.updateString(2, "V");
 wrs.acceptChanges();
 
Представление этих действий в XML показывает, где код Java вставляет новую строку, а затем обновляет отдельное поле только что вставленной строки.
 
 <data>
      <currentRow>
              <columnValue>
                      firstrow
              </columnValue>
              <columnValue>
                      1
              </columnValue>
      </currentRow>
      <currentRow>
              <columnValue>
                      secondrow
              </columnValue>
              <columnValue>
                      2
              </columnValue>
      </currentRow>
      <currentRow>
              <columnValue>
                      newthirdrow
              </columnValue>
              <columnValue>
                      III
              </columnValue>
      </currentRow>
      <insertRow>
              <columnValue>
                      fifthrow
              </columnValue>
              <columnValue>
                      5
              </columnValue>
              <updateValue>
                      V
              </updateValue>
      </insertRow>
      <currentRow>
              <columnValue>
                      fourthrow
              </columnValue>
              <columnValue>
                      4
              </columnValue>
      </currentRow>
 </date>
 

2.4 Состояние 4 — изменение строки

При изменении строки формируется специальный XML, в котором фиксируются как новое значение, так и значение, которое оно заменило. Замененное значение становится исходным, а новое значение — текущим. Следующий код перемещает курсор к определенной строке, выполняет некоторые изменения, а после их завершения обновляет строку.

 wrs.absolute(5);
 wrs.updateString(1, "new4thRow");
 wrs.updateString(2, "IV");
 wrs.updateRow();
 
В XML это описывается тегом modifyRow. Исходное и новое значения содержатся внутри этого тега для отслеживания исходной строки.
 
 <data>
      <currentRow>
              <columnValue>
                      firstrow
              </columnValue>
              <columnValue>
                      1
              </columnValue>
      </currentRow>
      <currentRow>
              <columnValue>
                      secondrow
              </columnValue>
              <columnValue>
                      2
              </columnValue>
      </currentRow>
      <currentRow>
              <columnValue>
                      newthirdrow
              </columnValue>
              <columnValue>
                      III
              </columnValue>
      </currentRow>
      <currentRow>
              <columnValue>
                      fifthrow
              </columnValue>
              <columnValue>
                      5
              </columnValue>
      </currentRow>
      <modifyRow>
              <columnValue>
                      fourthrow
              </columnValue>
              <updateValue>
                      new4thRow
              </updateValue>
              <columnValue>
                      4
              </columnValue>
              <updateValue>
                      IV
              </updateValue>
      </modifyRow>
 </data>
 
Начиная с:
1.5
См. также:
  • JdbcRowSet
  • CachedRowSet
  • FilteredRowSet
  • JoinRowSet

Краткое описание полей

Модификатор и тип Поле Описание
static final String PUBLIC_XML_SCHEMA
Публичный идентификатор определения XML-схемы, задающей XML-теги и их допустимые значения для реализации WebRowSet.
static final String SCHEMA_SYSTEM_ID
URL файла определения XML-схемы, задающей XML-теги и их допустимые значения для реализации WebRowSet.

Поля, объявленные в интерфейсе CachedRowSet

COMMIT_ON_ACCEPT_CHANGES

Поля, объявленные в интерфейсе ResultSet

CLOSE_CURSORS_AT_COMMIT, CONCUR_READ_ONLY, CONCUR_UPDATABLE, FETCH_FORWARD, FETCH_REVERSE, FETCH_UNKNOWN, HOLD_CURSORS_OVER_COMMIT, TYPE_FORWARD_ONLY, TYPE_SCROLL_INSENSITIVE, TYPE_SCROLL_SENSITIVE

Краткое описание методов

Модификатор и тип Метод Описание
void readXml(InputStream iStream)
Считывает входные данные в формате XML из потока для заполнения этого объекта WebRowSet.
void readXml(Reader reader)
Считывает объект WebRowSet в формате XML из указанного объекта Reader.
void writeXml(OutputStream oStream)
Записывает данные, свойства и метаданные этого объекта WebRowSet в указанный объект OutputStream в формате XML.
void writeXml(Writer writer)
Записывает данные, свойства и метаданные этого объекта WebRowSet в указанный объект Writer в формате XML.
void writeXml(ResultSet rs, OutputStream oStream)
Заполняет этот объект WebRowSet содержимым указанного объекта ResultSet и записывает его данные, свойства и метаданные в указанный объект OutputStream в формате XML.
void writeXml(ResultSet rs, Writer writer)
Заполняет этот объект WebRowSet содержимым указанного объекта ResultSet и записывает его данные, свойства и метаданные в указанный объект Writer в формате XML.

Методы, объявленные в интерфейсе CachedRowSet

acceptChanges, acceptChanges, columnUpdated, columnUpdated, commit, createCopy, createCopyNoConstraints, createCopySchema, createShared, execute, getKeyColumns, getOriginal, getOriginalRow, getPageSize, getRowSetWarnings, getShowDeleted, getSyncProvider, getTableName, nextPage, populate, populate, previousPage, release, restoreOriginal, rollback, rollback, rowSetPopulated, setKeyColumns, setMetaData, setOriginalRow, setPageSize, setShowDeleted, setSyncProvider, setTableName, size, toCollection, toCollection, toCollection, undoDelete, undoInsert, undoUpdate

Методы, объявленные в интерфейсе Joinable

getMatchColumnIndexes, getMatchColumnNames, setMatchColumn, setMatchColumn, setMatchColumn, setMatchColumn, unsetMatchColumn, unsetMatchColumn, unsetMatchColumn, unsetMatchColumn

Методы, объявленные в интерфейсе ResultSet

absolute, afterLast, beforeFirst, cancelRowUpdates, clearWarnings, close, deleteRow, findColumn, first, getArray, getArray, getAsciiStream, getAsciiStream, getBigDecimal, getBigDecimal, getBigDecimal, getBigDecimal, getBinaryStream, getBinaryStream, getBlob, getBlob, getBoolean, getBoolean, getByte, getByte, getBytes, getBytes, getCharacterStream, getCharacterStream, getClob, getClob, getConcurrency, getCursorName, getDate, getDate, getDate, getDate, getDouble, getDouble, getFetchDirection, getFetchSize, getFloat, getFloat, getHoldability, getInt, getInt, getLong, getLong, getMetaData, getNCharacterStream, getNCharacterStream, getNClob, getNClob, getNString, getNString, getObject, getObject, getObject, getObject, getObject, getObject, getRef, getRef, getRow, getRowId, getRowId, getShort, getShort, getSQLXML, getSQLXML, getStatement, getString, getString, getTime, getTime, getTime, getTime, getTimestamp, getTimestamp, getTimestamp, getTimestamp, getType, getUnicodeStream, getUnicodeStream, getURL, getURL, getWarnings, insertRow, isAfterLast, isBeforeFirst, isClosed, isFirst, isLast, last, moveToCurrentRow, moveToInsertRow, next, previous, refreshRow, relative, rowDeleted, rowInserted, rowUpdated, setFetchDirection, setFetchSize, updateArray, updateArray, updateAsciiStream, updateAsciiStream, updateAsciiStream, updateAsciiStream, updateAsciiStream, updateAsciiStream, updateBigDecimal, updateBigDecimal, updateBinaryStream, updateBinaryStream, updateBinaryStream, updateBinaryStream, updateBinaryStream, updateBinaryStream, updateBlob, updateBlob, updateBlob, updateBlob, updateBlob, updateBlob, updateBoolean, updateBoolean, updateByte, updateByte, updateBytes, updateBytes, updateCharacterStream, updateCharacterStream, updateCharacterStream, updateCharacterStream, updateCharacterStream, updateCharacterStream, updateClob, updateClob, updateClob, updateClob, updateClob, updateClob, updateDate, updateDate, updateDouble, updateDouble, updateFloat, updateFloat, updateInt, updateInt, updateLong, updateLong, updateNCharacterStream, updateNCharacterStream, updateNCharacterStream, updateNCharacterStream, updateNClob, updateNClob, updateNClob, updateNClob, updateNClob, updateNClob, updateNString, updateNString, updateNull, updateNull, updateObject, updateObject, updateObject, updateObject, updateObject, updateObject, updateObject, updateObject, updateRef, updateRef, updateRow, updateRowId, updateRowId, updateShort, updateShort, updateSQLXML, updateSQLXML, updateString, updateString, updateTime, updateTime, updateTimestamp, updateTimestamp, wasNull

Методы, объявленные в интерфейсе RowSet

addRowSetListener, clearParameters, execute, getCommand, getDataSourceName, getEscapeProcessing, getMaxFieldSize, getMaxRows, getPassword, getQueryTimeout, getTransactionIsolation, getTypeMap, getUrl, getUsername, isReadOnly, removeRowSetListener, setArray, setAsciiStream, setAsciiStream, setAsciiStream, setAsciiStream, setBigDecimal, setBigDecimal, setBinaryStream, setBinaryStream, setBinaryStream, setBinaryStream, setBlob, setBlob, setBlob, setBlob, setBlob, setBlob, setBoolean, setBoolean, setByte, setByte, setBytes, setBytes, setCharacterStream, setCharacterStream, setCharacterStream, setCharacterStream, setClob, setClob, setClob, setClob, setClob, setClob, setCommand, setConcurrency, setDataSourceName, setDate, setDate, setDate, setDate, setDouble, setDouble, setEscapeProcessing, setFloat, setFloat, setInt, setInt, setLong, setLong, setMaxFieldSize, setMaxRows, setNCharacterStream, setNCharacterStream, setNCharacterStream, setNCharacterStream, setNClob, setNClob, setNClob, setNClob, setNClob, setNClob, setNString, setNString, setNull, setNull, setNull, setNull, setObject, setObject, setObject, setObject, setObject, setObject, setPassword, setQueryTimeout, setReadOnly, setRef, setRowId, setRowId, setShort, setShort, setSQLXML, setSQLXML, setString, setString, setTime, setTime, setTime, setTime, setTimestamp, setTimestamp, setTimestamp, setTimestamp, setTransactionIsolation, setType, setTypeMap, setUrl, setURL, setUsername

Методы, объявленные в интерфейсе Wrapper

isWrapperFor, unwrap

Подробное описание полей

PUBLIC_XML_SCHEMA

static final String PUBLIC_XML_SCHEMA
Публичный идентификатор определения XML-схемы, задающей XML-теги и их допустимые значения для реализации WebRowSet.
См. также:
  • Значения констант

SCHEMA_SYSTEM_ID

static final String SCHEMA_SYSTEM_ID
URL файла определения XML-схемы, задающей XML-теги и их допустимые значения для реализации WebRowSet.
См. также:
  • Значения констант

Подробное описание методов

readXml

void readXml(Reader reader) throws SQLException
Считывает объект WebRowSet в формате XML из указанного объекта Reader.
Параметры:
reader — поток java.io.Reader, из которого будет заполнен этот объект WebRowSet
Исключения:
SQLException — если произошла ошибка доступа к базе данных

readXml

void readXml(InputStream iStream) throws SQLException, IOException
Считывает входные данные в формате XML из потока для заполнения этого объекта WebRowSet.
Параметры:
iStream — объект java.io.InputStream, из которого будет заполнен этот объект WebRowSet
Исключения:
SQLException — если произошла ошибка доступа к источнику данных
IOException — если произошло исключение ввода-вывода

writeXml

void writeXml(ResultSet rs, Writer writer) throws SQLException
Заполняет этот объект WebRowSet содержимым указанного объекта ResultSet и записывает его данные, свойства и метаданные в указанный объект Writer в формате XML.

ПРИМЕЧАНИЕ: курсор WebRowSet может перемещаться для записи содержимого в источник данных XML. Если реализация работает таким образом, курсор должен быть возвращен в положение, в котором он находился непосредственно перед вызовом writeXml().

Параметры:
rs — объект ResultSet, содержимым которого следует заполнить этот объект WebRowSet
writer — объект java.io.Writer, в который следует выполнить запись.
Исключения:
SQLException — если при записи содержимого набора строк в формате XML произошла ошибка

writeXml

void writeXml(ResultSet rs, OutputStream oStream) throws SQLException, IOException
Заполняет этот объект WebRowSet содержимым указанного объекта ResultSet и записывает его данные, свойства и метаданные в указанный объект OutputStream в формате XML.

ПРИМЕЧАНИЕ: курсор WebRowSet может перемещаться для записи содержимого в источник данных XML. Если реализация работает таким образом, курсор должен быть возвращен в положение, в котором он находился непосредственно перед вызовом writeXml().

Параметры:
rs — объект ResultSet, содержимым которого следует заполнить этот объект WebRowSet
oStream — объект java.io.OutputStream, в который следует выполнить запись
Исключения:
SQLException — если произошла ошибка доступа к источнику данных
IOException — если произошло исключение ввода-вывода

writeXml

void writeXml(Writer writer) throws SQLException
Записывает данные, свойства и метаданные этого объекта WebRowSet в указанный объект Writer в формате XML.
Параметры:
writer — поток java.io.Writer, в который следует выполнить запись
Исключения:
SQLException — если при записи содержимого набора строк в XML произошла ошибка

writeXml

void writeXml(OutputStream oStream) throws SQLException, IOException
Записывает данные, свойства и метаданные этого объекта WebRowSet в указанный объект OutputStream в формате XML.
Параметры:
oStream — поток java.io.OutputStream, в который следует выполнить запись
Исключения:
SQLException — если произошла ошибка доступа к источнику данных
IOException — если произошло исключение ввода-вывода

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в разделе Документация Java SE, где представлены более подробные описания для разработчиков, обзоры концепций, определения терминов, обходные решения и рабочие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторские права © 1993, 2025, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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/WebRowSet.html

Spec-Zone.ru

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