-
- All Superinterfaces:
AutoCloseable,Joinable,ResultSet,RowSet,Wrapper
public interface JdbcRowSet extends RowSet, Joinable
The standard interface that all standard implementations ofJdbcRowSetmust implement.1.0 Overview
A wrapper around aResultSetobject that makes it possible to use the result set as a JavaBeans™ component. Thus, aJdbcRowSetobject can be one of the Beans that a tool makes available for composing an application. Because aJdbcRowSetis a connected rowset, that is, it continually maintains its connection to a database using a JDBC technology-enabled driver, it also effectively makes the driver a JavaBeans component.Because it is always connected to its database, an instance of
JdbcRowSetcan simply take calls invoked on it and in turn call them on itsResultSetobject. As a consequence, a result set can, for example, be a component in a Swing application.Another advantage of a
JdbcRowSetobject is that it can be used to make aResultSetobject scrollable and updatable. AllRowSetobjects are by default scrollable and updatable. If the driver and database being used do not support scrolling and/or updating of result sets, an application can populate aJdbcRowSetobject with the data of aResultSetobject and then operate on theJdbcRowSetobject as if it were theResultSetobject.2.0 Creating a
The reference implementation of theJdbcRowSetObjectJdbcRowSetinterface,JdbcRowSetImpl, provides an implementation of the default constructor. A new instance is initialized with default values, which can be set with new values as needed. A new instance is not really functional until itsexecutemethod is called. In general, this method does the following:- establishes a connection with a database
- creates a
PreparedStatementobject and sets any of its placeholder parameters - executes the statement to create a
ResultSetobject
executemethod is successful, it will set the appropriate privateJdbcRowSetfields with the following:- a
Connectionobject -- the connection between the rowset and the database - a
PreparedStatementobject -- the query that produces the result set - a
ResultSetobject -- the result set that the rowset's command produced and that is being made, in effect, a JavaBeans component
executemethod has not executed successfully, no methods other thanexecuteandclosemay be called on the rowset. All other public methods will throw an exception.Before calling the
executemethod, however, the command and properties needed for establishing a connection must be set. The following code fragment creates aJdbcRowSetImplobject, sets the command and connection properties, sets the placeholder parameter, and then invokes the methodexecute.JdbcRowSetImpl jrs = new JdbcRowSetImpl(); jrs.setCommand("SELECT * FROM TITLES WHERE TYPE = ?"); jrs.setURL("jdbc:myDriver:myAttribute"); jrs.setUsername("cervantes"); jrs.setPassword("sancho"); jrs.setString(1, "BIOGRAPHY"); jrs.execute();The variablejrsnow represents an instance ofJdbcRowSetImplthat is a thin wrapper around theResultSetobject containing all the rows in the tableTITLESwhere the type of book is biography. At this point, operations called onjrswill affect the rows in the result set, which is effectively a JavaBeans component.The implementation of the
RowSetmethodexecutein theJdbcRowSetreference implementation differs from that in theCachedRowSet™ reference implementation to account for the different requirements of connected and disconnectedRowSetobjects.- Since:
- 1.5
-
-
Field Summary
-
Fields declared in 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
All Methods Instance Methods Abstract Methods Modifier and Type Method Description voidcommit()EachJdbcRowSetcontains aConnectionobject from theResultSetor JDBC properties passed to it's constructors.booleangetAutoCommit()EachJdbcRowSetcontains aConnectionobject from the originalResultSetor JDBC properties passed to it.RowSetWarninggetRowSetWarnings()Retrieves the first warning reported by calls on thisJdbcRowSetobject.booleangetShowDeleted()Retrieves abooleanindicating whether rows marked for deletion appear in the set of current rows.voidrollback()EachJdbcRowSetcontains aConnectionobject from the originalResultSetor JDBC properties passed to it.voidrollback(Savepoint s)EachJdbcRowSetcontains aConnectionobject from the originalResultSetor JDBC properties passed to it.voidsetAutoCommit(boolean autoCommit)EachJdbcRowSetcontains aConnectionobject from the originalResultSetor JDBC properties passed to it.voidsetShowDeleted(boolean b)Sets the propertyshowDeletedto the givenbooleanvalue.-
Methods declared in interface javax.sql.rowset.Joinable
getMatchColumnIndexes, getMatchColumnNames, setMatchColumn, setMatchColumn, setMatchColumn, setMatchColumn, unsetMatchColumn, unsetMatchColumn, unsetMatchColumn, unsetMatchColumn
-
Methods declared in 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, updateObject, updateObject, updateObject, updateObject, updateRef, updateRef, updateRow, updateRowId, updateRowId, updateShort, updateShort, updateSQLXML, updateSQLXML, updateString, updateString, updateTime, updateTime, updateTimestamp, updateTimestamp, wasNull
-
Methods declared in 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 declared in interface java.sql.Wrapper
isWrapperFor, unwrap
-
-
-
-
Method Detail
-
getShowDeleted
boolean getShowDeleted() throws SQLExceptionRetrieves abooleanindicating whether rows marked for deletion appear in the set of current rows. Iftrueis returned, deleted rows are visible with the current rows. Iffalseis returned, rows are not visible with the set of current rows. The default value isfalse.Standard rowset implementations may choose to restrict this behavior for security considerations or for certain deployment scenarios. The visibility of deleted rows is implementation-defined and does not represent standard behavior.
Note: Allowing deleted rows to remain visible complicates the behavior of some standard JDBC
RowSetimplementations methods. However, most rowset users can simply ignore this extra detail because only very specialized applications will likely want to take advantage of this feature.- Returns:
trueif deleted rows are visible;falseotherwise- Throws:
SQLException- if a rowset implementation is unable to to determine whether rows marked for deletion remain visible- See Also:
setShowDeleted(boolean)
-
setShowDeleted
void setShowDeleted(boolean b) throws SQLExceptionSets the propertyshowDeletedto the givenbooleanvalue. This property determines whether rows marked for deletion continue to appear in the set of current rows. If the value is set totrue, deleted rows are immediately visible with the set of current rows. If the value is set tofalse, the deleted rows are set as invisible with the current set of rows.Standard rowset implementations may choose to restrict this behavior for security considerations or for certain deployment scenarios. This is left as implementation-defined and does not represent standard behavior.
- Parameters:
b-trueif deleted rows should be shown;falseotherwise- Throws:
SQLException- if a rowset implementation is unable to to reset whether deleted rows should be visible- See Also:
getShowDeleted()
-
getRowSetWarnings
RowSetWarning getRowSetWarnings() throws SQLException
Retrieves the first warning reported by calls on thisJdbcRowSetobject. If a second warning was reported on thisJdbcRowSetobject, it will be chained to the first warning and can be retrieved by calling the methodRowSetWarning.getNextWarningon the first warning. Subsequent warnings on thisJdbcRowSetobject will be chained to theRowSetWarningobjects returned by the methodRowSetWarning.getNextWarning. The warning chain is automatically cleared each time a new row is read. This method may not be called on aRowSetobject that has been closed; doing so will cause anSQLExceptionto be thrown.Because it is always connected to its data source, a
JdbcRowSetobject can rely on the presence of activeStatement,Connection, andResultSetinstances. This means that applications can obtain additionalSQLWarningnotifications by calling thegetNextWarningmethods that they provide. DisconnectedRowsetobjects, such as aCachedRowSetobject, do not have access to thesegetNextWarningmethods.- Returns:
- the first
RowSetWarningobject reported on thisJdbcRowSetobject ornullif there are none - Throws:
SQLException- if this method is called on a closedJdbcRowSetobject- See Also:
RowSetWarning
-
commit
void commit() throws SQLExceptionEachJdbcRowSetcontains aConnectionobject from theResultSetor JDBC properties passed to it's constructors. This method wraps theConnectioncommit method to allow flexible auto commit or non auto commit transactional control support.Makes all changes made since the previous commit/rollback permanent and releases any database locks currently held by this Connection object. This method should be used only when auto-commit mode has been disabled.
- Throws:
SQLException- if a database access error occurs or this Connection object within thisJdbcRowSetis in auto-commit mode- See Also:
Connection.setAutoCommit(boolean)
-
getAutoCommit
boolean getAutoCommit() throws SQLExceptionEachJdbcRowSetcontains aConnectionobject from the originalResultSetor JDBC properties passed to it. This method wraps theConnection'sgetAutoCommitmethod to allow an application to determine theJdbcRowSettransaction behavior.Sets this connection's auto-commit mode to the given state. If a connection is in auto-commit mode, then all its SQL statements will be executed and committed as individual transactions. Otherwise, its SQL statements are grouped into transactions that are terminated by a call to either the method commit or the method rollback. By default, new connections are in auto-commit mode.
- Returns:
trueif auto-commit is enabled;falseotherwise- Throws:
SQLException- if a database access error occurs- See Also:
Connection.getAutoCommit()
-
setAutoCommit
void setAutoCommit(boolean autoCommit) throws SQLExceptionEachJdbcRowSetcontains aConnectionobject from the originalResultSetor JDBC properties passed to it. This method wraps theConnection'sgetAutoCommitmethod to allow an application to set theJdbcRowSettransaction behavior.Sets the current auto-commit mode for this
Connectionobject.- Parameters:
autoCommit-trueto enable auto-commit;falseto disable auto-commit- Throws:
SQLException- if a database access error occurs- See Also:
Connection.setAutoCommit(boolean)
-
rollback
void rollback() throws SQLExceptionEachJdbcRowSetcontains aConnectionobject from the originalResultSetor JDBC properties passed to it. Undoes all changes made in the current transaction and releases any database locks currently held by thisConnectionobject. This method should be used only when auto-commit mode has been disabled.- Throws:
SQLException- if a database access error occurs or thisConnectionobject within thisJdbcRowSetis in auto-commit mode.- See Also:
rollback(Savepoint)
-
rollback
void rollback(Savepoint s) throws SQLException
EachJdbcRowSetcontains aConnectionobject from the originalResultSetor JDBC properties passed to it. Undoes all changes made in the current transaction to the last set savepoint and releases any database locks currently held by thisConnectionobject. This method should be used only when auto-commit mode has been disabled.- Parameters:
s- TheSavepointto rollback to- Throws:
SQLException- if a database access error occurs or thisConnectionobject within thisJdbcRowSetis in auto-commit mode.- See Also:
rollback()
-
-