|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
public interface JdbcRowSet
所有標準 JdbcRowSet
實作都必須實作的標準介面。
ResultSet
物件的套件裝器使得將該結果集用作 JavaBeansTM 元件成為可能。因此,JdbcRowSet
物件可以是某個 Beans,是可用於組成應用程序的工具。因為 JdbcRowSet
是一個連接的 rowset,也就是說,它使用啟用 JDBC 技術的驅動程序來維持它與資料庫的連接,所以它也能有效地使驅動程序成為 JavaBeans 元件。
因為它始終連接到其資料庫,所以 JdbcRowSet
的實例可以簡單地採用在其上進行調用的方法,並依次對其 ResultSet
物件調用這些方法。因此,結果集可以是(舉例來說)Swing 應用程序中的一個元件。
JdbcRowSet
物件的另一個優點是可使用它讓 ResultSet
物件可滾動和可更新。預設情況下,所有 RowSet
物件都是可滾動的和可更新的。如果使用的驅動程序和資料庫不支持結果集的滾動和/或更新,則應用程序可以組裝一個帶 ResultSet
物件資料的 JdbcRowSet
物件,然後在該 JdbcRowSet
物件上操作,就好像它是 ResultSet
物件一樣。
JdbcRowSet
物件JdbcRowSet
介面的參考實作 JdbcRowSetImpl
提供了預設建構子的實作。使用預設值初始化新的實例,可根據需要使用新值設置這些預設值。在調用新實例的 execute
方法之前,它實際上無法真正發揮作用。通常,此方法執行以下操作:
PreparedStatement
物件並設置其所有佔位符參數
ResultSet
物件
execute
方法執行成功,則使用以下內容設置適當的私有 JdbcRowSet
欄位:
Connection
物件 -- rowset 和資料庫之間的連接
PreparedStatement
物件 -- 產生結果集的查詢
ResultSet
物件 -- rowset 的命令所產生的和正在產生的結果集,實際上是一個 JavaBeans 元件
execute
方法,此時除 execute
和 close
以外,不能在該 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
的實作與 CachedRowSet
TM 參考實作中的不同,從而導致對已連接和非連接 RowSet
物件的不同要求。
欄位摘要 |
---|
方法摘要 | |
---|---|
void |
commit()
每個 JdbcRowSet 都包含一個取自 ResultSet 的 Connection 物件或傳遞到其建構子的 JDBC 屬性。 |
boolean |
getAutoCommit()
每個 JdbcRowSet 都包含一個取自原始 ResultSet 的 Connection 物件或傳遞給它的 JDBC 屬性。 |
RowSetWarning |
getRowSetWarnings()
獲取此 JdbcRowSet 物件上的調用報告的第一個警告。 |
boolean |
getShowDeleted()
獲取一個 boolean 值,該值指示標記為刪除的行是否會出現在當前行集合中。 |
void |
rollback()
每個 JdbcRowSet 都包含一個取自原始 ResultSet 的 Connection 物件或傳遞給它的 JDBC 屬性。 |
void |
rollback(Savepoint s)
每個 JdbcRowSet 都包含一個取自原始 ResultSet 的 Connection 物件或傳遞給它的 JDBC 屬性。 |
void |
setAutoCommit(boolean autoCommit)
每個 JdbcRowSet 都包含一個取自原始 ResultSet 的 Connection 物件或傳遞給它的 JDBC 屬性。 |
void |
setShowDeleted(boolean b)
將屬性 showDeleted 設置為給定的 boolean 值。 |
從介面 java.sql.Wrapper 繼承的方法 |
---|
isWrapperFor, unwrap |
從介面 javax.sql.rowset.Joinable 繼承的方法 |
---|
getMatchColumnIndexes, getMatchColumnNames, setMatchColumn, setMatchColumn, setMatchColumn, setMatchColumn, unsetMatchColumn, unsetMatchColumn, unsetMatchColumn, unsetMatchColumn |
方法詳細資訊 |
---|
boolean getShowDeleted() throws SQLException
boolean
值,該值指示標記為刪除的行是否會出現在當前行集合中。如果返回 true
,則已刪除行與當前行一起可見。如果返回 false
,則已刪除行與當前行集合一起不可見。預設值為 false
。
出於安全考慮或為了某些部署情況,標準的 rowset 實作可以選擇限制此行為。已刪除行的可見性是實作定義的,並不表示標準行為。
註:允許保持已刪除行可見會使某些標準 JDBC RowSet
實作方法的行為變得複雜。但是,多數 rowset 使用者可以簡單地忽略此額外細節,因為只有極其特殊的應用程序才會利用此功能。
true
;否則返回 false
SQLException
- 如果 rowset 實作無法確定是否使標記為刪除的行保持可見setShowDeleted(boolean)
void setShowDeleted(boolean b) throws SQLException
showDeleted
設置為給定的 boolean
值。此屬性確定標記為刪除的行是否繼續出現在當前行集合中。如果將值設置為 true
,則已刪除行與當前行集合一起立即可見。如果將值設置為 false
,則已刪除行與當前行集合一起被設置為不可見。
出於安全考慮或為了某些部署情況,標準的 rowset 實作可以選擇限制此行為。這是由實作定義的,並不表示標準行為。
b
- 如果應該顯示已刪除行,則為 true
;否則為 false
SQLException
- 如果 rowset 實作無法重置已刪除行是否應該可見getShowDeleted()
RowSetWarning getRowSetWarnings() throws SQLException
JdbcRowSet
物件上的調用報告的第一個警告。如果此 JdbcRowSet
物件上報告了第二個警告,則將它連接到第一個警告,並可通過在第一個警告上調用方法 RowSetWarning.getNextWarning
來獲取該警告。此 JdbcRowSet
物件上的後續警告會被連接到方法 RowSetWarning.getNextWarning
返回的 RowSetWarning
物件。
每次讀取新行時,都會自動清除警告鏈。不可以在已經關閉的 RowSet
物件上調用此方法;這樣做將導致拋出 SQLException
。
因為 JdbcRowSet
物件始終連接到其資料源,所以該物件可以依靠現有的活動 Statement
、Connection
和 ResultSet
實例。這意味著應用程序可以通過調用 getNextWarning
方法來獲得所提供的附加 SQLWarning
通知。非連接 Rowset
物件(如 CachedRowSet
物件)不必存取這些 getNextWarning
方法。
JdbcRowSet
物件上報告第一個 RowSetWarning
物件,如果沒有則為 null
SQLException
- 如果在已關閉的 JdbcRowSet
物件上調用此方法RowSetWarning
void commit() throws SQLException
JdbcRowSet
都包含一個取自 ResultSet
的 Connection
物件或傳遞到其建構子的 JDBC 屬性。此方法包裹 Connection
提交方法,以允許靈活的自動提交或非自動提交事務控制支持。
使自從上一次提交/回滾以來進行的所有更改成為持久更改,並釋放此 Connection 物件當前保存的所有資料庫鎖定。此方法應該只在已禁用自動提交網要時使用。
SQLException
- 如果發生資料庫存取錯誤或者此 JdbcRowSet
內的 Connection 物件處於自動提交網要下Connection.setAutoCommit(boolean)
boolean getAutoCommit() throws SQLException
JdbcRowSet
都包含一個取自原始 ResultSet
的 Connection
物件或傳遞給它的 JDBC 屬性。此方法包裹 Connection
的 getAutoCommit
方法,以允許應用程序確定 JdbcRowSet
的事務行為。
將此 connection 的自動提交網要設置為給定的狀態。如果 connection 處於自動提交網要下,則將執行其所有 SQL 語句,並將這些語句作為單獨的事務提交。否則,其 SQL 語句將成組地進入通過調用 commit 方法或 rollback 方法終止的事務中。預設情況下,新的 connection 處於自動提交網要下。
SQLException
- 如果發生資料庫存取錯誤Connection.getAutoCommit()
void setAutoCommit(boolean autoCommit) throws SQLException
JdbcRowSet
都包含一個取自原始 ResultSet
的 Connection
物件或傳遞給它的 JDBC 屬性。此方法包裹 Connection
的 getAutoCommit
方法,以允許應用程序設置 JdbcRowSet
的事務行為。
設置此 Connection
物件的當前自動提交網要。
SQLException
- 如果發生資料庫存取錯誤Connection.setAutoCommit(boolean)
void rollback() throws SQLException
JdbcRowSet
都包含一個取自原始 ResultSet
的 Connection
物件或傳遞給它的 JDBC 屬性。取消在當前事務中進行的所有更改,並釋放此 Connection
物件當前保存的所有資料庫鎖定。此方法應該只在已禁用自動提交網要時使用。
SQLException
- 如果發生資料庫存取錯誤或者此 JdbcRowSet
內的 Connection
物件處於自動提交網要下。rollback(Savepoint)
void rollback(Savepoint s) throws SQLException
JdbcRowSet
都包含一個取自原始 ResultSet
的 Connection
物件或傳遞給它的 JDBC 屬性。取消在當前事務中進行的所有更改,一直到最後設置的保存點,並釋放此 Connection
物件當前保存的所有資料庫鎖定。此方法應該只在已禁用自動提交網要時使用。
SQLException
- 如果發生資料庫存取錯誤或者此 JdbcRowSet
內的 Connection
物件處於自動提交網要下。rollback()
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。