20

Spring DriverManagerDataSource と apache BasicDataSource の違いは何ですか? それらのどれが好ましく、どの状況で?

ありがとうございました。

4

2 に答える 2

21

Springのドキュメントによると

このクラスは実際の接続プールではありません。実際には接続をプールしません。本格的な接続プールの単純な代替として機能し、同じ標準インターフェイスを実装しますが、呼び出しごとに新しい接続を作成します。

J2EE コンテナーの外部に「実際の」接続プールが必要な場合は、Apache の Jakarta Commons DBCP または C3P0 を検討してください。Commons DBCP の BasicDataSource と C3P0 の ComboPooledDataSource は完全な接続プール Bean であり、このクラスと同じ基本プロパティと特定の設定 (最小/最大プール サイズなど) をサポートします。

データベース接続の制御もお読みください

Spring の JDBC レイヤーを使用する場合、JNDI からデータ ソースを取得するか、サード パーティが提供する接続プールの実装を使用して独自のデータ ソースを構成します。一般的な実装は、Apache Jakarta Commons DBCP と C3P0 です。Spring ディストリビューションの実装は、テストのみを目的としており、プーリングは提供しません。

于 2013-07-30T11:01:08.810 に答える
3

Spring DriverManagerDataSource API から:

このクラスは実際の接続プールではありません。実際には接続をプールしません。本格的な接続プールの単純な代替として機能し、同じ標準インターフェイスを実装しますが、呼び出しごとに新しい接続を作成します。

つまり、テストには問題ないかもしれませんが、実際のアプリケーションでは Apache DBCP を使用します

于 2013-07-30T11:01:52.807 に答える