Интерфейс 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-схемы, обеспечивая тем самым большую межплатформенную совместимость. В настоящее время эта работа ведется в организации 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 простой таблицей из двух столбцов и пяти строк из источника данных. Наличие 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. |
Поля, объявленные в интерфейсе javax.sql.rowset.CachedRowSet
COMMIT_ON_ACCEPT_CHANGES
Поля, объявленные в интерфейсе java.sql.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. |
Методы, объявленные в интерфейсе javax.sql.rowset.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
Методы, объявленные в интерфейсе javax.sql.rowset.Joinable
getMatchColumnIndexes, getMatchColumnNames, setMatchColumn, setMatchColumn, setMatchColumn, setMatchColumn, unsetMatchColumn, unsetMatchColumn, unsetMatchColumn, unsetMatchColumn
Методы, объявленные в интерфейсе java.sql.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
Методы, объявленные в интерфейсе javax.sql.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
Методы, объявленные в интерфейсе java.sql.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, 2023, 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/21/docs/api/java.sql.rowset/javax/sql/rowset/WebRowSet.html