Spec-Zone.ru › OpenJDK 8

Интерфейс WebRowSet

Все суперинтерфейсы:
AutoCloseable, CachedRowSet, Joinable, ResultSet, RowSet, Wrapper
Все известные подинтерфейсы:
FilteredRowSet, JoinRowSet

public interface WebRowSet
extends CachedRowSet

Стандартный интерфейс, который должны реализовывать все реализации WebRowSet.

1.0 Обзор

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

Стандартная схема WebRowSet XML доступна по следующему URI:

  • http://java.sun.com/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
Описание схемы описывает внутренние данные объекта RowSet в трех отдельных областях:
  • properties - Эти свойства описывают стандартные свойства поставщика синхронизации, а также более общие свойства RowSet.
  • metadata - Это описывает метаданные, связанные со структурой таблицы, управляемой объектом WebRowSet. Описываемые метаданные тесно связаны с метаданными, доступными в базовом интерфейсе java.sql.ResultSet.
  • data - Это описывает исходные данные (состояние данных с момента последнего заполнения или последней синхронизации объекта 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_UNCOMMITED</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>
См. также:
JdbcRowSet, CachedRowSet, FilteredRowSet, JoinRowSet

Поля

Модификатор и тип Поле и описание
static String PUBLIC_XML_SCHEMA

Общедоступный идентификатор определения XML-схемы, который определяет XML-теги и их допустимые значения для реализации WebRowSet.

static 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(ResultSet rs, OutputStream oStream)

Заполняет объект WebRowSet содержимым заданного объекта ResultSet и записывает его данные, свойства и метаданные в заданный объект OutputStream в формате XML.

void writeXml(ResultSet rs, Writer writer)

Заполняет объект WebRowSet содержимым заданного объекта ResultSet и записывает его данные, свойства и метаданные в заданный объект Writer в формате XML.

void writeXml(Writer writer)

Записывает данные, свойства и метаданные для объекта WebRowSet в заданный объект 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

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.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

Методы, унаследованные от интерфейса java.sql.Wrapper

isWrapperFor, unwrap

Методы, унаследованные от интерфейса javax.sql.rowset.Joinable

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

Поля

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, 2020, 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.

Spec-Zone.ru

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