0

質問は基本的に、データ アクセス レイヤーのベスト プラクティスを特定することです。

Web アプリケーションに接続をロードするために、データ ソースまたは従来のドライバー マネージャーのどちらを使用するかを選択したいと考えています。私は次の利点を非常に明確に知っています

  1. 構成の柔軟性
  2. 組み込みの接続プーリング メカニズム

しかし、構成の柔軟性という利点を犠牲にして、独自の接続プール メカニズムを使用できる場合、データ ソースから他の利点を得られるでしょうか。逆に言えば、コンテナ管理ではなくアプリケーション管理のjdbcドライバー接続を使用しているときに直面する制限や問題は何ですか。

私は質問が非常にばかげていることを知っているので、誰かが私のアプリケーションよりも接続を処理することの利点を知っている必要があります。しかし、これは Web アプリケーションでデータソースを使用できないまれなシナリオです。私は次のことを探しています

  1. 独自の接続プールを自分で設計するにはどうすればよいですか?
  2. DriverManager API を介して接続にアクセスするときに注意すべきことは他にありますか?
4

1 に答える 1

3

DataSourceユーザー入力に基づいて動的に (接続プールに基づく)をプログラムで作成することが非常に可能であることに注意してください。

Apache Commons-dbcp の使用:

BasicDataSource ds = new BasicDataSource();
ds.setDriverClassName(DATABASE_DRIVER_CLASS);
ds.setUsername(DATABASE_USERNAME);
ds.setPassword(DATABASE_PASSWORD);
ds.setUrl(DATABASE_URL);
ds.setInitialSize(1);
ds.setMaxActive(50);
ds.setDefaultAutoCommit(false);

DataSourceしたがって、問題は実際には aと no-の間DataSourceではなく、管理されたコンテナーと管理さDataSourceれたアプリケーションの間であると思いますDataSource

コンテナー管理DataSourcesは、サーバー管理タイプによって管理が容易です。それらはアプリ サーバーの Web UI を介して調整できます。etcApplication マネージドDataSourcesにはこの利点がありません。

于 2013-07-19T13:22:35.250 に答える