Spec-Zone.ru › OpenJDK 17

Интерфейс 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-схемы, что обеспечивает ещё большую межплатформенную совместимость. В настоящее время эта работа ведется в организации 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.

Поля, объявленные в интерфейсе 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(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.

Методы, объявленные в интерфейсе 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
Общедоступный идентификатор определения 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 - если произошла ошибка ввода-вывода

© 1993, 2021, 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/17/docs/api/java.sql.rowset/javax/sql/rowset/WebRowSet.html

Spec-Zone.ru

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