W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
public interface PooledConnection
為連接池管理提供掛鉤的對象。 PooledConnection 對象表示與數(shù)據(jù)源的物理連接。 當應(yīng)用程序完成連接時,連接可以被回收而不是關(guān)閉,從而減少需要建立的連接數(shù)量。
應(yīng)用程序程序員不直接使用 PooledConnection 接口; 相反,它由管理連接池的中間層基礎(chǔ)設(shè)施使用。
當應(yīng)用程序調(diào)用 DataSource.getConnection 方法時,它會返回一個 Connection 對象。 如果正在進行連接池,則該 Connection 對象實際上是 PooledConnection 對象的句柄,它是一個物理連接。
連接池管理器(通常是應(yīng)用程序服務(wù)器)維護一個 PooledConnection 對象池。如果池中有可用的 PooledConnection 對象,則連接池管理器會返回一個 Connection 對象,該對象是該物理連接的句柄。如果沒有可用的 PooledConnection 對象,則連接池管理器調(diào)用 ConnectionPoolDataSource 方法 getPoolConnection 來創(chuàng)建新的物理連接。實現(xiàn) ConnectionPoolDataSource 的 JDBC 驅(qū)動程序創(chuàng)建一個新的 PooledConnection 對象并返回一個句柄。
當應(yīng)用程序關(guān)閉連接時,它會調(diào)用 Connection 方法 close。完成連接池時,會通知連接池管理器,因為它已使用 ConnectionPool 方法 addConnectionEventListener 將自己注冊為 ConnectionEventListener 對象。連接池管理器停用 PooledConnection 對象的句柄并將 PooledConnection 對象返回到連接池,以便可以再次使用它。因此,當應(yīng)用程序關(guān)閉其連接時,底層物理連接將被回收而不是被關(guān)閉。
在連接池管理器調(diào)用 PooledConnection 方法關(guān)閉之前,物理連接不會關(guān)閉。 通常調(diào)用此方法以有序關(guān)閉服務(wù)器,或者如果致命錯誤導(dǎo)致連接不可用。
連接池管理器通常也是語句池管理器,維護 PreparedStatement 對象池。 當應(yīng)用程序關(guān)閉準備好的語句時,它會調(diào)用 PreparedStatement 方法 close。 當語句池完成時,池管理器會收到通知,因為它已使用 ConnectionPool 方法 addStatementEventListener 將自己注冊為 StatementEventListener 對象。 因此,當應(yīng)用程序關(guān)閉其 PreparedStatement 時,底層的準備好的語句被回收而不是被關(guān)閉。
Since:
1.4
修飾符和類型 | 方法 | 描述 |
---|---|---|
void | addConnectionEventListener(ConnectionEventListener listener) | 注冊給定的事件偵聽器,以便在此 PooledConnection 對象上發(fā)生事件時通知它。 |
void | addStatementEventListener(StatementEventListener listener) | 使用此 PooledConnection 對象注冊 StatementEventListener。 |
void | close() | 關(guān)閉此 PooledConnection 對象表示的物理連接。 |
Connection | getConnection() | 創(chuàng)建并返回一個 Connection 對象,該對象是此 PooledConnection 對象表示的物理連接的句柄。 |
void | removeConnectionEventListener(ConnectionEventListener listener) | 當此 PooledConnection 對象上發(fā)生事件時,從將通知的組件列表中刪除給定的事件偵聽器。 |
void | removeStatementEventListener(StatementEventListener listener) | 當驅(qū)動程序檢測到 PreparedStatement 已關(guān)閉或無效時,將通知的組件列表中刪除指定的 StatementEventListener。 |
Connection getConnection() throws SQLException
創(chuàng)建并返回一個 Connection 對象,該對象是此 PooledConnection 對象表示的物理連接的句柄。 當應(yīng)用程序調(diào)用了 DataSource.getConnection 方法并且沒有可用的 PooledConnection 對象時,連接池管理器調(diào)用此方法。 有關(guān)更多信息,請參閱 PooledConnection。
返回:
一個 Connection 對象,它是此 PooledConnection 對象的句柄
Throws:
Throw名稱 | Throw描述 |
---|---|
SQLException | 如果發(fā)生數(shù)據(jù)庫訪問錯誤 |
SQLFeatureNotSupportedException | 如果 JDBC 驅(qū)動程序不支持此方法 |
Since:
1.4
void close() throws SQLException
關(guān)閉此 PooledConnection 對象表示的物理連接。 應(yīng)用程序從不直接調(diào)用此方法; 它由連接池模塊或管理器調(diào)用。
Throws:
Throw名稱 | Throw描述 |
---|---|
SQLException | 如果發(fā)生數(shù)據(jù)庫訪問錯誤 |
SQLFeatureNotSupportedException | 如果 JDBC 驅(qū)動程序不支持此方法 |
Since:
1.4
void addConnectionEventListener(ConnectionEventListener listener)
注冊給定的事件偵聽器,以便在此 PooledConnection 對象上發(fā)生事件時通知它。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
listener | 一個組件,通常是連接池管理器,它實現(xiàn)了 ConnectionEventListener 接口,并希望在連接關(guān)閉或出現(xiàn)錯誤時得到通知 |
void removeConnectionEventListener(ConnectionEventListener listener)
當此 PooledConnection 對象上發(fā)生事件時,從將通知的組件列表中刪除給定的事件偵聽器。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
listener | 一個組件,通常是連接池管理器,它已經(jīng)實現(xiàn)了 ConnectionEventListener 接口并作為偵聽器注冊到此 PooledConnection 對象中 |
void addStatementEventListener(StatementEventListener listener)
使用此 PooledConnection 對象注冊 StatementEventListener。 希望在連接創(chuàng)建的 PreparedStatements 關(guān)閉或檢測到無效時收到通知的組件可以使用此方法向此 PooledConnection 對象注冊 StatementEventListener。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
listener | 一個實現(xiàn) StatementEventListener 接口的組件,該接口將使用此 PooledConnection 對象注冊 |
Since:
1.6
void removeStatementEventListener(StatementEventListener listener)
當驅(qū)動程序檢測到 PreparedStatement 已關(guān)閉或無效時,將通知的組件列表中刪除指定的 StatementEventListener。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
listener | 實現(xiàn)先前使用此 PooledConnection 對象注冊的 StatementEventListener 接口的組件 |
Since:
1.6
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: