-
- All Superinterfaces:
- AutoCloseable, CachedRowSet, Joinable, ResultSet, RowSet, WebRowSet, Wrapper
public interface FilteredRowSet extends WebRowSet
The standard interface that all standard implementations ofFilteredRowSet
must implement. TheFilteredRowSetImpl
class provides the reference implementation which may be extended if required. Alternatively, a vendor is free to implement its own version by implementing this interface.1.0 Background
There are occasions when aRowSet
object has a need to provide a degree of filtering to its contents. One possible solution is to provide a query language for all standardRowSet
implementations; however, this is an impractical approach for lightweight components such as disconnectedRowSet
objects. TheFilteredRowSet
interface seeks to address this need without supplying a heavyweight query language along with the processing that such a query language would require.A JDBC
FilteredRowSet
standard implementation implements theRowSet
interfaces and extends theCachedRowSet
TM class. TheCachedRowSet
class provides a set of protected cursor manipulation methods, which aFilteredRowSet
implementation can override to supply filtering support.2.0 Predicate Sharing
If aFilteredRowSet
implementation is shared using the inheritedcreateShared
method in parent interfaces, thePredicate
should be shared without modification by allFilteredRowSet
instance clones.3.0 Usage
By implementing a
Predicate
(see example in Predicate class JavaDoc), aFilteredRowSet
could then be used as described below.FilteredRowSet frs = new FilteredRowSetImpl(); frs.populate(rs); Range name = new Range("Alpha", "Bravo", "columnName"); frs.setFilter(name); frs.next() // only names from "Alpha" to "Bravo" will be returned
Range
object which implements thePredicate
interface. This object expresses the following constraints: All rows outputted or modified from thisFilteredRowSet
object must fall between the values 'Alpha' and 'Bravo' both values inclusive, in the column 'columnName'. If a filter is applied to aFilteredRowSet
object that contains no data that falls within the range of the filter, no rows are returned.This framework allows multiple classes implementing predicates to be used in combination to achieved the required filtering result with out the need for query language processing.
4.0 Updating a FilteredRowSet Object
The predicate set on aFilteredRowSet
object applies a criterion on all rows in aRowSet
object to manage a subset of rows in aRowSet
object. This criterion governs the subset of rows that are visible and also defines which rows can be modified, deleted or inserted.Therefore, the predicate set on a
FilteredRowSet
object must be considered as bi-directional and the set criterion as the gating mechanism for all views and updates to theFilteredRowSet
object. Any attempt to update theFilteredRowSet
that violates the criterion will result in aSQLException
object being thrown.The
FilteredRowSet
range criterion can be modified by applying a newPredicate
object to theFilteredRowSet
instance at any time. This is possible if no additional references to theFilteredRowSet
object are detected. A new filter has has an immediate effect on criterion enforcement within theFilteredRowSet
object, and all subsequent views and updates will be subject to similar enforcement.5.0 Behavior of Rows Outside the Filter
Rows that fall outside of the filter set on aFilteredRowSet
object cannot be modified until the filter is removed or a new filter is applied.Furthermore, only rows that fall within the bounds of a filter will be synchronized with the data source.
-
-
Field Summary
-
Fields inherited from interface javax.sql.rowset.WebRowSet
PUBLIC_XML_SCHEMA, SCHEMA_SYSTEM_ID
-
Fields inherited from interface javax.sql.rowset.CachedRowSet
COMMIT_ON_ACCEPT_CHANGES
-
Fields inherited from interface 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
-
-
Method Summary
Methods Modifier and Type Method and Description Predicate
getFilter()
Retrieves the active filter for thisFilteredRowSet
object.void
setFilter(Predicate p)
Applies the givenPredicate
object to thisFilteredRowSet
object.-
Methods inherited from interface javax.sql.rowset.WebRowSet
readXml, readXml, writeXml, writeXml, writeXml, writeXml
-
Methods inherited from interface 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
-
Methods inherited from interface 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
-
Methods inherited from interface 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, updateRef, updateRef, updateRow, updateRowId, updateRowId, updateShort, updateShort, updateSQLXML, updateSQLXML, updateString, updateString, updateTime, updateTime, updateTimestamp, updateTimestamp, wasNull
-
Methods inherited from interface java.sql.Wrapper
isWrapperFor, unwrap
-
Methods inherited from interface javax.sql.rowset.Joinable
getMatchColumnIndexes, getMatchColumnNames, setMatchColumn, setMatchColumn, setMatchColumn, setMatchColumn, unsetMatchColumn, unsetMatchColumn, unsetMatchColumn, unsetMatchColumn
-
-
-
-
Method Detail
-
setFilter
void setFilter(Predicate p) throws SQLException
Applies the givenPredicate
object to thisFilteredRowSet
object. The filter applies controls both to inbound and outbound views, constraining which rows are visible and which rows can be manipulated.A new
Predicate
object may be set at any time. This has the effect of changing constraints on theRowSet
object's data. In addition, modifying the filter at runtime presents issues whereby multiple components may be operating on oneFilteredRowSet
object. Application developers must take responsibility for managing multiple handles toFilteredRowSet
objects when their underlingPredicate
objects change.- Parameters:
p
- aPredicate
object defining the filter for thisFilteredRowSet
object. Setting a null value will clear the predicate, allowing all rows to become visible.- Throws:
SQLException
- if an error occurs when setting thePredicate
object
-
getFilter
Predicate getFilter()
Retrieves the active filter for thisFilteredRowSet
object.- Returns:
- p the
Predicate
for thisFilteredRowSet
object;null
if no filter has been set.
-
-
Nederlandse vertaling
U hebt gevraagd om deze site in het Nederlands te bezoeken. Voor nu wordt alleen de interface vertaald, maar nog niet alle inhoud.Als je me wilt helpen met vertalingen, is je bijdrage welkom. Het enige dat u hoeft te doen, is u op de site registreren en mij een bericht sturen waarin u wordt gevraagd om u toe te voegen aan de groep vertalers, zodat u de gewenste pagina's kunt vertalen. Een link onderaan elke vertaalde pagina geeft aan dat u de vertaler bent en heeft een link naar uw profiel.
Bij voorbaat dank.
Document heeft de 11/06/2005 gemaakt, de laatste keer de 04/03/2020 gewijzigd
Bron van het afgedrukte document:https://www.gaudry.be/nl/java-api-rf-javax/sql/rowset/filteredrowset.html
De infobrol is een persoonlijke site waarvan de inhoud uitsluitend mijn verantwoordelijkheid is. De tekst is beschikbaar onder CreativeCommons-licentie (BY-NC-SA). Meer info op de gebruiksvoorwaarden en de auteur.
Referenties
Deze verwijzingen en links verwijzen naar documenten die geraadpleegd zijn tijdens het schrijven van deze pagina, of die aanvullende informatie kunnen geven, maar de auteurs van deze bronnen kunnen niet verantwoordelijk worden gehouden voor de inhoud van deze pagina.
De auteur Deze site is als enige verantwoordelijk voor de manier waarop de verschillende concepten, en de vrijheden die met de referentiewerken worden genomen, hier worden gepresenteerd. Vergeet niet dat u meerdere broninformatie moet doorgeven om het risico op fouten te verkleinen.