Интерфейс WebRowSet
- Все суперинтерфейсы:
AutoCloseable, CachedRowSet, Joinable, ResultSet, RowSet, Wrapper
- Все известные подинтерфейсы:
FilteredRowSet, JoinRowSet
public interface WebRowSet extends CachedRowSet
WebRowSet. 1.0 Обзор
WebRowSetImpl предоставляет стандартную эталонную реализацию, которую при необходимости можно расширить. Определение стандартной XML-схемы WebRowSet доступно по следующему URI:
Она описывает стандартный формат XML-документа, необходимый для представления объектаRowSet в XML, и должна использоваться всеми стандартными реализациями интерфейса WebRowSet для обеспечения совместимости. Кроме того, схема WebRowSet использует специальные аннотации SQL/XML Schema, обеспечивая тем самым более высокую кроссплатформенную совместимость. Эта работа в настоящее время ведется в организации ISO. Определение SQL/XML доступно по следующему URI: Определение схемы описывает внутренние данные объекта 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
- См. также:
Краткое описание полей
| Модификатор и тип | Поле | Описание |
|---|---|---|
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 |
Считывает входные данные в формате XML из потока для заполнения этого объекта WebRowSet. |
void |
readXml |
Считывает объект WebRowSet в формате XML из указанного объекта Reader. |
void |
writeXml |
Записывает данные, свойства и метаданные этого объекта WebRowSet в указанный объект OutputStream в формате XML. |
void |
writeXml |
Записывает данные, свойства и метаданные этого объекта WebRowSet в указанный объект Writer в формате XML. |
void |
writeXml |
Заполняет этот объект WebRowSet содержимым указанного объекта ResultSet и записывает его данные, свойства и метаданные в указанный объект OutputStream в формате XML. |
void |
writeXml |
Заполняет этот объект 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
WebRowSet.- См. также:
SCHEMA_SYSTEM_ID
static final String SCHEMA_SYSTEM_ID
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
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— если произошло исключение ввода-вывода
© 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