weblogic.jdbc.rowset
Interface WLCachedRowSet
- All Superinterfaces:
- CachedRowSet, FilteredRowSet, Joinable, ResultSet, RowSet, Serializable, SortedRowSet, WebRowSet
- All Known Implementing Classes:
- CachedRowSetImpl, FilteredRowSetImpl, JoinRowSetImpl, WebRowSetImpl
public interface WLCachedRowSet
- extends RowSet, CachedRowSet, WebRowSet, FilteredRowSet, SortedRowSet, Serializable
WLCachedRowSet
is an extension to the
javax.sql.RowSet
interface.
WLCachedRowSet
is a disconnected RowSet. Data is
read into the RowSet from a JDBC query, an existing
java.sql.ResultSet
, or an XML document.
The RowSet then has the data in memory and does not maintain any open
connections or transactions in the database.
All reads, writes, deletes, and inserts occur in memory. When the
acceptChanges
method is called, the
WLCachedRowSet
writes any inserts, updates, or deletes
to the database.
Since the WLCachedRowSet
does not hold open any
transactions between reading and updating the data, it uses
optimistic concurrency control to verify the state of the
underlying database row has not changed.
The WLCachedRowSet
interface extends
java.io.Serializable
so a WLCachedRowSet
may be serialized and sent across a network connection to a client.
The WLCachedRowSet
may be written as an XML instance
document. This XML document captures the row(s) currently cached
in the WLCachedRowSet
A WLCachedRowSet
is created from the RowSetFactory class.
RowSetFactory factory = RowSetFactory.newInstance();
WLCachedRowSet rowSet = factory.newCachedRowSet();
A detailed discussion of the WLCachedRowSet
's optimistic
concurrency control options can be found in the
WLRowSetMetaData
javadocs.
- See Also:
WLRowSetMetaData
Field Summary |
static int |
ALL_ROWS
XML Document includes all rows with both their changed and
original values |
static int |
CHANGED_ALL
XML Document includes the current and original values for all
changed rows. |
static int |
CHANGED_CURRENT
XML Document includes only changed rows with their current
values. |
static int |
CHANGED_ORIGINAL
XML Document includes only changed rows with their original
values. |
static int |
CURRENT_ALL
XML Document includes the current values for all rows. |
static int |
UNCHANGED_CURRENT
XML Document includes only unchanged rows. |
Method Summary |
String |
executeAndGuessTableName()
Executes the command, parses it, and sets the table name as the first word
following the SQL keyword "from". |
boolean |
executeAndGuessTableNameAndPrimaryKeys()
Executes the command, parses it, sets the table name as the first word
following the SQL keyword "from", and then looks up the table in
DatabaseMetaData to determine the primary keys. |
Map |
getCurrentRow()
Returns a Map representing the current row in the RowSet. |
DataSource |
getDataSource()
Returns the current javax.sql.DataSource for this RowSet. |
Map |
getRow(int index)
Returns a Map representing the row at the specified index. |
Map[] |
getRows()
Returns an array of Maps representing all rows in the rowset |
Map[] |
getRows(int startIndex,
int endIndex)
Returns an array of Maps representing the rows in the rowset from
[startIndex...endIndex-1] |
boolean |
isComplete()
Returns whether the populating query read all matching rows, or
it hit the maxRows limit. |
void |
loadXML(XMLInputStream xis)
Populates the RowSet from an XML document in the XMLInputStream. |
void |
moveToUpdateRow()
Mark the current row as updated even it has no original value. |
void |
populate(ResultSetMetaData md)
Loads a ResultSet from an existing
java.sql.ResultSetMetaData . |
void |
setDataSource(DataSource dataSource)
Sets the javax.sql.DataSource used for establishing JDBC
Connections. |
void |
setRowSetSynced()
Mark the whole RowSet object as it has been synced with backend DataSource. |
void |
setRowSynced()
Mark current row as it has been synced with backend DataSource. |
void |
writeXML(XMLOutputStream xos)
Writes the RowSet to the XMLOutputStream as an XML document. |
void |
writeXML(XMLOutputStream xos,
int rowStates)
Writes the RowSet as an XML document. |
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, setBigDecimal, setBinaryStream, setBlob, setBoolean, setByte, setBytes, setCharacterStream, setClob, setCommand, setConcurrency, setDataSourceName, setDate, setDate, setDouble, setEscapeProcessing, setFloat, setInt, setLong, setMaxFieldSize, setMaxRows, setNull, setNull, setObject, setObject, setObject, setPassword, setQueryTimeout, setReadOnly, setRef, setShort, setString, setTime, setTime, setTimestamp, setTimestamp, setTransactionIsolation, setType, setTypeMap, 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, getInt, getInt, getLong, getLong, getMetaData, getObject, getObject, getObject, getObject, getRef, getRef, getRow, getShort, getShort, getStatement, getString, getString, getTime, getTime, getTime, getTime, getTimestamp, getTimestamp, getTimestamp, getTimestamp, getType, getUnicodeStream, getUnicodeStream, getURL, getURL, getWarnings, insertRow, isAfterLast, isBeforeFirst, isFirst, isLast, last, moveToCurrentRow, moveToInsertRow, next, previous, refreshRow, relative, rowDeleted, rowInserted, rowUpdated, setFetchDirection, setFetchSize, updateArray, updateArray, updateAsciiStream, updateAsciiStream, updateBigDecimal, updateBigDecimal, updateBinaryStream, updateBinaryStream, updateBlob, updateBlob, updateBoolean, updateBoolean, updateByte, updateByte, updateBytes, updateBytes, updateCharacterStream, updateCharacterStream, updateClob, updateClob, updateDate, updateDate, updateDouble, updateDouble, updateFloat, updateFloat, updateInt, updateInt, updateLong, updateLong, updateNull, updateNull, updateObject, updateObject, updateObject, updateObject, updateRef, updateRef, updateRow, updateShort, updateShort, updateString, updateString, updateTime, updateTime, updateTimestamp, updateTimestamp, wasNull |
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, setBigDecimal, setBinaryStream, setBlob, setBoolean, setByte, setBytes, setCharacterStream, setClob, setCommand, setConcurrency, setDataSourceName, setDate, setDate, setDouble, setEscapeProcessing, setFloat, setInt, setLong, setMaxFieldSize, setMaxRows, setNull, setNull, setObject, setObject, setObject, setPassword, setQueryTimeout, setReadOnly, setRef, setShort, setString, setTime, setTime, setTimestamp, setTimestamp, setTransactionIsolation, setType, setTypeMap, 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, getInt, getInt, getLong, getLong, getMetaData, getObject, getObject, getObject, getObject, getRef, getRef, getRow, getShort, getShort, getStatement, getString, getString, getTime, getTime, getTime, getTime, getTimestamp, getTimestamp, getTimestamp, getTimestamp, getType, getUnicodeStream, getUnicodeStream, getURL, getURL, getWarnings, insertRow, isAfterLast, isBeforeFirst, isFirst, isLast, last, moveToCurrentRow, moveToInsertRow, next, previous, refreshRow, relative, rowDeleted, rowInserted, rowUpdated, setFetchDirection, setFetchSize, updateArray, updateArray, updateAsciiStream, updateAsciiStream, updateBigDecimal, updateBigDecimal, updateBinaryStream, updateBinaryStream, updateBlob, updateBlob, updateBoolean, updateBoolean, updateByte, updateByte, updateBytes, updateBytes, updateCharacterStream, updateCharacterStream, updateClob, updateClob, updateDate, updateDate, updateDouble, updateDouble, updateFloat, updateFloat, updateInt, updateInt, updateLong, updateLong, updateNull, updateNull, updateObject, updateObject, updateObject, updateObject, updateRef, updateRef, updateRow, updateShort, updateShort, updateString, updateString, updateTime, updateTime, updateTimestamp, updateTimestamp, wasNull |
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, setBigDecimal, setBinaryStream, setBlob, setBoolean, setByte, setBytes, setCharacterStream, setClob, setCommand, setConcurrency, setDataSourceName, setDate, setDate, setDouble, setEscapeProcessing, setFloat, setInt, setLong, setMaxFieldSize, setMaxRows, setNull, setNull, setObject, setObject, setObject, setPassword, setQueryTimeout, setReadOnly, setRef, setShort, setString, setTime, setTime, setTimestamp, setTimestamp, setTransactionIsolation, setType, setTypeMap, 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, getInt, getInt, getLong, getLong, getMetaData, getObject, getObject, getObject, getObject, getRef, getRef, getRow, getShort, getShort, getStatement, getString, getString, getTime, getTime, getTime, getTime, getTimestamp, getTimestamp, getTimestamp, getTimestamp, getType, getUnicodeStream, getUnicodeStream, getURL, getURL, getWarnings, insertRow, isAfterLast, isBeforeFirst, isFirst, isLast, last, moveToCurrentRow, moveToInsertRow, next, previous, refreshRow, relative, rowDeleted, rowInserted, rowUpdated, setFetchDirection, setFetchSize, updateArray, updateArray, updateAsciiStream, updateAsciiStream, updateBigDecimal, updateBigDecimal, updateBinaryStream, updateBinaryStream, updateBlob, updateBlob, updateBoolean, updateBoolean, updateByte, updateByte, updateBytes, updateBytes, updateCharacterStream, updateCharacterStream, updateClob, updateClob, updateDate, updateDate, updateDouble, updateDouble, updateFloat, updateFloat, updateInt, updateInt, updateLong, updateLong, updateNull, updateNull, updateObject, updateObject, updateObject, updateObject, updateRef, updateRef, updateRow, updateShort, updateShort, updateString, updateString, updateTime, updateTime, updateTimestamp, updateTimestamp, wasNull |
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, setBigDecimal, setBinaryStream, setBlob, setBoolean, setByte, setBytes, setCharacterStream, setClob, setCommand, setConcurrency, setDataSourceName, setDate, setDate, setDouble, setEscapeProcessing, setFloat, setInt, setLong, setMaxFieldSize, setMaxRows, setNull, setNull, setObject, setObject, setObject, setPassword, setQueryTimeout, setReadOnly, setRef, setShort, setString, setTime, setTime, setTimestamp, setTimestamp, setTransactionIsolation, setType, setTypeMap, 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, getInt, getInt, getLong, getLong, getMetaData, getObject, getObject, getObject, getObject, getRef, getRef, getRow, getShort, getShort, getStatement, getString, getString, getTime, getTime, getTime, getTime, getTimestamp, getTimestamp, getTimestamp, getTimestamp, getType, getUnicodeStream, getUnicodeStream, getURL, getURL, getWarnings, insertRow, isAfterLast, isBeforeFirst, isFirst, isLast, last, moveToCurrentRow, moveToInsertRow, next, previous, refreshRow, relative, rowDeleted, rowInserted, rowUpdated, setFetchDirection, setFetchSize, updateArray, updateArray, updateAsciiStream, updateAsciiStream, updateBigDecimal, updateBigDecimal, updateBinaryStream, updateBinaryStream, updateBlob, updateBlob, updateBoolean, updateBoolean, updateByte, updateByte, updateBytes, updateBytes, updateCharacterStream, updateCharacterStream, updateClob, updateClob, updateDate, updateDate, updateDouble, updateDouble, updateFloat, updateFloat, updateInt, updateInt, updateLong, updateLong, updateNull, updateNull, updateObject, updateObject, updateObject, updateObject, updateRef, updateRef, updateRow, updateShort, updateShort, updateString, updateString, updateTime, updateTime, updateTimestamp, updateTimestamp, wasNull |
UNCHANGED_CURRENT
static final int UNCHANGED_CURRENT
- XML Document includes only unchanged rows. A row is unchanged if
it has not been inserted, updated, or deleted in the rowset.
- See Also:
- Constant Field Values
CHANGED_CURRENT
static final int CHANGED_CURRENT
- XML Document includes only changed rows with their current
values. A changed row has been inserted, updated, or deleted in the
rowset.
- See Also:
- Constant Field Values
CHANGED_ORIGINAL
static final int CHANGED_ORIGINAL
- XML Document includes only changed rows with their original
values. A changed row has been inserted, updated, or deleted in the
rowset.
- See Also:
- Constant Field Values
CURRENT_ALL
static final int CURRENT_ALL
- XML Document includes the current values for all rows.
- See Also:
- Constant Field Values
CHANGED_ALL
static final int CHANGED_ALL
- XML Document includes the current and original values for all
changed rows. A changed row has been inserted, updated, or
deleted in the rowset.
- See Also:
- Constant Field Values
ALL_ROWS
static final int ALL_ROWS
- XML Document includes all rows with both their changed and
original values
- See Also:
- Constant Field Values
populate
void populate(ResultSetMetaData md)
throws SQLException
- Loads a ResultSet from an existing
java.sql.ResultSetMetaData
. This method produces an
empty RowSet that can be used to insert new rows.
- Throws:
SQLException
- if there is an error processing the
ResultSetMetaData
executeAndGuessTableName
String executeAndGuessTableName()
throws SQLException
- Executes the command, parses it, and sets the table name as the first word
following the SQL keyword "from".
- Returns:
- Returns the guessed table name or null, if unsuccessful.
- Throws:
SQLException
- if a database access error occurs or any of the
properties necessary for making a connection and creating
a statement have not been set
executeAndGuessTableNameAndPrimaryKeys
boolean executeAndGuessTableNameAndPrimaryKeys()
throws SQLException
- Executes the command, parses it, sets the table name as the first word
following the SQL keyword "from", and then looks up the table in
DatabaseMetaData to determine the primary keys.
- Throws:
SQLException
- if a database access error occurs or any of the
properties necessary for making a connection and creating
a statement have not been set
isComplete
boolean isComplete()
- Returns whether the populating query read all matching rows, or
it hit the maxRows limit.
When execute
is called, it runs the query specified
by the setCommand
method. The user may optionally
specify a maximum number of rows to return from the query with
the setMaxRows
method.
- Returns:
- Returns true if the setMaxRows has been set, and the query
returned all rows. It also returns true if maxRows has not been
set, or the rowset was not populated via the
execute
method.
Returns false if MaxRows has been set, and the
query hit the maxRows limit without returning all matching rows
getCurrentRow
Map getCurrentRow()
throws SQLException
- Returns a Map representing the current row in the RowSet.
Like java.sql.ResultSet
, a RowSet acts like a cursor
or Iterator with next() and previous() methods. This method
returns a java.util.Map instance representing the row at the
current position.
The returned Map has keys of the column names and values of the
column values. The column values may be read with the get(Object
key)
method and updated with put(Object key, Object value)
method. The user must call updateRow()
after
updating the Map for the RowSet to accept the updated values.
- Returns:
- a Map representing the current row in the RowSet.
- Throws:
SQLException
- if the current RowSet position is not a
valid row
getRow
Map getRow(int index)
throws SQLException
- Returns a Map representing the row at the specified index.
Note: For this method, the starting index number is 0
, which
is different than the starting index for the getRow() method inherited from java.sql.ResultSet.
The starting index for that method is 1
.
- Parameters:
index
- row index into the row set. Valid values are [0 ...
row.size() -1]
- Returns:
- a Map representing the row at the specified index
- Throws:
SQLException
- if the index is not a valid row
getRows
Map[] getRows(int startIndex,
int endIndex)
throws SQLException
- Returns an array of Maps representing the rows in the rowset from
[startIndex...endIndex-1]
- Parameters:
startIndex
- the starting rowset indexendIndex
- the end rowset index
- Returns:
- an array of Maps representing the Rows in the specified range
- Throws:
SQLException
- if startIndex or endIndex out of bounds or
if startIndex > endIndex
getRows
Map[] getRows()
throws SQLException
- Returns an array of Maps representing all rows in the rowset
- Returns:
- an array of Maps representing all rows in the rowset
- Throws:
SQLException
- if there is an error creating the Map array
setDataSource
void setDataSource(DataSource dataSource)
throws SQLException
- Sets the javax.sql.DataSource used for establishing JDBC
Connections. This method is prefered to setDataSourceName when the
caller already has a DataSource instance.
- Parameters:
javax.sql.DataSource
- a DataSource
- Throws:
SQLException
getDataSource
DataSource getDataSource()
throws SQLException
- Returns the current javax.sql.DataSource for this RowSet. If
setDataSourceName or setDataSource have been called, a DataSource
is returned. If no DataSource has been set, null is returned.
- Returns:
- javax.sql.DataSource the current DataSource
- Throws:
SQLException
- if the DataSource name given to
setDataSourceName cannot be found or is invalid.
loadXML
void loadXML(XMLInputStream xis)
throws IOException,
SQLException
- Populates the RowSet from an XML document in the XMLInputStream.
- Parameters:
XMLInputStream
- an XMLInputStream containing a XML document
with the RowSet data.
- Throws:
IOException
SQLException
writeXML
void writeXML(XMLOutputStream xos)
throws IOException,
SQLException
- Writes the RowSet to the XMLOutputStream as an XML document.
This call is equivalent to calling
writeXML(XMLOutputStream,ALL_ROWS)
- Parameters:
XMLOutputStream
- an XMLOutputStream where the RowSet will
be written
- Throws:
IOException
- if there is an error writing to the
XMLOutputStream
SQLException
- if there is an error retrieving data from
the RowSet
writeXML
void writeXML(XMLOutputStream xos,
int rowStates)
throws IOException,
SQLException
- Writes the RowSet as an XML document.
- Throws:
IOException
SQLException
setRowSynced
void setRowSynced()
throws SQLException
- Mark current row as it has been synced with backend DataSource.
- Throws:
SQLException
setRowSetSynced
void setRowSetSynced()
throws SQLException
- Mark the whole RowSet object as it has been synced with backend DataSource.
- Throws:
SQLException
moveToUpdateRow
void moveToUpdateRow()
throws SQLException
- Mark the current row as updated even it has no original value.
When synced with backend DataSource, we will use VERIFY_NONE policy
for this row.
- Throws:
SQLException