実際には接続プールを使用していません。 ConnectionPoolDataSource
直接使用するためのものではありません。これは(特別な) DataSource
として意図されています PooledConnection
の場合 その後、(通常の) DataSource
によって接続プールに保持されるオブジェクト 接続プールを提供する実装。
通常の開発者はConnectionPoolDataSource
を使用しないでください 直接、アプリケーションサーバーによって提供される接続プールで使用すること、または汎用の DataSource
にラップすることを目的としています。 ■接続プールを提供しました。
接続
の場合 接続プールから要求された場合、既存の PooledConnection
をチェックアウトします (または、 ConnectionPoolDataSource
から新しいものをリクエストします )、 Connection
を取得します それをユーザーに返します。ユーザーがConnection
を閉じたとき 、 PooledConnection
接続プールに再び使用可能であることを通知します。
この場合、 PooledConnection
を作成しています 、接続
を取得する そこからPooledConnection
を破棄します 。これは、 PooledConnection
が が破棄され、データベースへの物理接続は再利用できず、最終的にガベージコレクションが行われるときに閉じ/破棄されます(通常、接続プールが物理接続を閉じたい場合は、 close()
> PooledConnection
で 。
アプリケーションサーバーが提供する接続プールを使用するか、DBCP、c3p0、BoneCPなどの汎用接続プールを使用する必要があります。