Commons Poolは以前会得した*1ので今度はDBCP。
前は1スレッド1コネクションの組み合わせを複数持ってキュー、は以前作ったので今度はスレッド数とコネクションプール数を別にする。まぁ実際の所はDBアクセスが重いのが常だから1:1でも良いんだけどな。データをキューに放り込むメインスレッドとDBアクセスなその他スレッド。

DBCP(Database Connection Pool)コンポーネントは、JDBCリソースをプールする必要のあるアプリケーションで利用できます。このコンポーネントは、JDBC接続とは別にStatementインスタンスとPreparedStatementインスタンスのサポートも提供します。

http://japan.internet.com/developer/20060322/25.html

単体APのサンプル

DBCPではこれらのクラスに対応するPoolingDriverクラス(org.apache.commons.dbcp.PoolingDriver)とPoolingDataSourceクラス(org.apache.commons.dbcp.PoolingDataSource)が用意されています。DBCPを用いたプログラミングでは、まずこれらのクラスのいずれかのインスタンスを生成し、生成したインスタンスからConnectionオブジェクトを取得することになります。

http://www.atmarkit.co.jp/fjava/rensai2/jakarta06/jakarta06.html

こちらはサーブレットのサンプル。

*1:自分で判るサンプルを作った