JavaTM 2 Platform
Standard Ed. 6

javax.sql.rowset
介面 JdbcRowSet

所有父級介面:
Joinable, ResultSet, RowSet, Wrapper

public interface JdbcRowSet
extends RowSet, Joinable

所有標準 JdbcRowSet 實作都必須實作的標準介面。

1.0 概觀

ResultSet 物件的套件裝器使得將該結果集用作 JavaBeansTM 元件成為可能。因此,JdbcRowSet 物件可以是某個 Beans,是可用於組成應用程序的工具。因為 JdbcRowSet 是一個連接的 rowset,也就是說,它使用啟用 JDBC 技術的驅動程序來維持它與資料庫的連接,所以它也能有效地使驅動程序成為 JavaBeans 元件。

因為它始終連接到其資料庫,所以 JdbcRowSet 的實例可以簡單地採用在其上進行調用的方法,並依次對其 ResultSet 物件調用這些方法。因此,結果集可以是(舉例來說)Swing 應用程序中的一個元件。

JdbcRowSet 物件的另一個優點是可使用它讓 ResultSet 物件可滾動和可更新。預設情況下,所有 RowSet 物件都是可滾動的和可更新的。如果使用的驅動程序和資料庫不支持結果集的滾動和/或更新,則應用程序可以組裝一個帶 ResultSet 物件資料的 JdbcRowSet 物件,然後在該 JdbcRowSet 物件上操作,就好像它是 ResultSet 物件一樣。

2.0 創建 JdbcRowSet 物件

JdbcRowSet 介面的參考實作 JdbcRowSetImpl 提供了預設建構子的實作。使用預設值初始化新的實例,可根據需要使用新值設置這些預設值。在調用新實例的 execute 方法之前,它實際上無法真正發揮作用。通常,此方法執行以下操作: 如果 execute 方法執行成功,則使用以下內容設置適當的私有 JdbcRowSet 欄位: 如果尚未設置這些欄位,則意味著尚未成功執行 execute 方法,此時除 executeclose 以外,不能在該 rowset 上調用任何方法。調用所有其他公共方法都會拋出異常。

但是在調用 execute 方法之前,必須設置那些建立連接所需的命令和屬性。以下程式碼片斷創建了一個 JdbcRowSetImpl 物件、設置命令連接屬性、設置佔位符參數,然後調用方法 execute

     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();
 
變數 jrs 現在表示一個 JdbcRowSetImpl 實例,它是 ResultSet 物件的一個精簡型外覆器,而該物件包含了表 TITLES 中書籍型別為傳記的所有行。此時,在 jrs 上調用的操作將影響結果集中的各行,該結果集實際上是一個 JavaBeans 元件。

JdbcRowSet 參考實作中的 RowSet 方法 execute 的實作與 CachedRowSetTM 參考實作中的不同,從而導致對已連接和非連接 RowSet 物件的不同要求。


欄位摘要
 
從介面 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 commit()
          每個 JdbcRowSet 都包含一個取自 ResultSetConnection 物件或傳遞到其建構子的 JDBC 屬性。
 boolean getAutoCommit()
          每個 JdbcRowSet 都包含一個取自原始 ResultSetConnection 物件或傳遞給它的 JDBC 屬性。
 RowSetWarning getRowSetWarnings()
          獲取此 JdbcRowSet 物件上的調用報告的第一個警告。
 boolean getShowDeleted()
          獲取一個 boolean 值,該值指示標記為刪除的行是否會出現在當前行集合中。
 void rollback()
          每個 JdbcRowSet 都包含一個取自原始 ResultSetConnection 物件或傳遞給它的 JDBC 屬性。
 void rollback(Savepoint s)
          每個 JdbcRowSet 都包含一個取自原始 ResultSetConnection 物件或傳遞給它的 JDBC 屬性。
 void setAutoCommit(boolean autoCommit)
          每個 JdbcRowSet 都包含一個取自原始 ResultSetConnection 物件或傳遞給它的 JDBC 屬性。
 void setShowDeleted(boolean b)
          將屬性 showDeleted 設置為給定的 boolean 值。
 
從介面 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, 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
 
從介面 java.sql.Wrapper 繼承的方法
isWrapperFor, unwrap
 
從介面 javax.sql.rowset.Joinable 繼承的方法
getMatchColumnIndexes, getMatchColumnNames, setMatchColumn, setMatchColumn, setMatchColumn, setMatchColumn, unsetMatchColumn, unsetMatchColumn, unsetMatchColumn, unsetMatchColumn
 

方法詳細資訊

getShowDeleted

boolean getShowDeleted()
                       throws SQLException
獲取一個 boolean 值,該值指示標記為刪除的行是否會出現在當前行集合中。如果返回 true,則已刪除行與當前行一起可見。如果返回 false,則已刪除行與當前行集合一起不可見。預設值為 false

出於安全考慮或為了某些部署情況,標準的 rowset 實作可以選擇限制此行為。已刪除行的可見性是實作定義的,並不表示標準行為。

註:允許保持已刪除行可見會使某些標準 JDBC RowSet 實作方法的行為變得複雜。但是,多數 rowset 使用者可以簡單地忽略此額外細節,因為只有極其特殊的應用程序才會利用此功能。

返回:
如果已刪除行是可見的,則返回 true;否則返回 false
拋出:
SQLException - 如果 rowset 實作無法確定是否使標記為刪除的行保持可見
另請參見:
setShowDeleted(boolean)

setShowDeleted

void setShowDeleted(boolean b)
                    throws SQLException
將屬性 showDeleted 設置為給定的 boolean 值。此屬性確定標記為刪除的行是否繼續出現在當前行集合中。如果將值設置為 true,則已刪除行與當前行集合一起立即可見。如果將值設置為 false,則已刪除行與當前行集合一起被設置為不可見。

出於安全考慮或為了某些部署情況,標準的 rowset 實作可以選擇限制此行為。這是由實作定義的,並不表示標準行為。

參數:
b - 如果應該顯示已刪除行,則為 true;否則為 false
拋出:
SQLException - 如果 rowset 實作無法重置已刪除行是否應該可見
另請參見:
getShowDeleted()

getRowSetWarnings

RowSetWarning getRowSetWarnings()
                                throws SQLException
獲取此 JdbcRowSet 物件上的調用報告的第一個警告。如果此 JdbcRowSet 物件上報告了第二個警告,則將它連接到第一個警告,並可通過在第一個警告上調用方法 RowSetWarning.getNextWarning 來獲取該警告。此 JdbcRowSet 物件上的後續警告會被連接到方法 RowSetWarning.getNextWarning 返回的 RowSetWarning 物件。 每次讀取新行時,都會自動清除警告鏈。不可以在已經關閉的 RowSet 物件上調用此方法;這樣做將導致拋出 SQLException

因為 JdbcRowSet 物件始終連接到其資料源,所以該物件可以依靠現有的活動 StatementConnectionResultSet 實例。這意味著應用程序可以通過調用 getNextWarning 方法來獲得所提供的附加 SQLWarning 通知。非連接 Rowset 物件(如 CachedRowSet 物件)不必存取這些 getNextWarning 方法。

返回:
JdbcRowSet 物件上報告第一個 RowSetWarning 物件,如果沒有則為 null
拋出:
SQLException - 如果在已關閉的 JdbcRowSet 物件上調用此方法
另請參見:
RowSetWarning

commit

void commit()
            throws SQLException
每個 JdbcRowSet 都包含一個取自 ResultSetConnection 物件或傳遞到其建構子的 JDBC 屬性。此方法包裹 Connection 提交方法,以允許靈活的自動提交或非自動提交事務控制支持。

使自從上一次提交/回滾以來進行的所有更改成為持久更改,並釋放此 Connection 物件當前保存的所有資料庫鎖定。此方法應該只在已禁用自動提交網要時使用。

拋出:
SQLException - 如果發生資料庫存取錯誤或者此 JdbcRowSet 內的 Connection 物件處於自動提交網要下
另請參見:
Connection.setAutoCommit(boolean)

getAutoCommit

boolean getAutoCommit()
                      throws SQLException
每個 JdbcRowSet 都包含一個取自原始 ResultSetConnection 物件或傳遞給它的 JDBC 屬性。此方法包裹 ConnectiongetAutoCommit 方法,以允許應用程序確定 JdbcRowSet 的事務行為。

將此 connection 的自動提交網要設置為給定的狀態。如果 connection 處於自動提交網要下,則將執行其所有 SQL 語句,並將這些語句作為單獨的事務提交。否則,其 SQL 語句將成組地進入通過調用 commit 方法或 rollback 方法終止的事務中。預設情況下,新的 connection 處於自動提交網要下。

拋出:
SQLException - 如果發生資料庫存取錯誤
另請參見:
Connection.getAutoCommit()

setAutoCommit

void setAutoCommit(boolean autoCommit)
                   throws SQLException
每個 JdbcRowSet 都包含一個取自原始 ResultSetConnection 物件或傳遞給它的 JDBC 屬性。此方法包裹 ConnectiongetAutoCommit 方法,以允許應用程序設置 JdbcRowSet 的事務行為。

設置此 Connection 物件的當前自動提交網要。

拋出:
SQLException - 如果發生資料庫存取錯誤
另請參見:
Connection.setAutoCommit(boolean)

rollback

void rollback()
              throws SQLException
每個 JdbcRowSet 都包含一個取自原始 ResultSetConnection 物件或傳遞給它的 JDBC 屬性。取消在當前事務中進行的所有更改,並釋放此 Connection 物件當前保存的所有資料庫鎖定。此方法應該只在已禁用自動提交網要時使用。

拋出:
SQLException - 如果發生資料庫存取錯誤或者此 JdbcRowSet 內的 Connection 物件處於自動提交網要下。
另請參見:
rollback(Savepoint)

rollback

void rollback(Savepoint s)
              throws SQLException
每個 JdbcRowSet 都包含一個取自原始 ResultSetConnection 物件或傳遞給它的 JDBC 屬性。取消在當前事務中進行的所有更改,一直到最後設置的保存點,並釋放此 Connection 物件當前保存的所有資料庫鎖定。此方法應該只在已禁用自動提交網要時使用。

拋出:
SQLException - 如果發生資料庫存取錯誤或者此 JdbcRowSet 內的 Connection 物件處於自動提交網要下。
另請參見:
rollback()

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only