javase データベース アプリケーションでは、多くの短命のオブジェクト (請求書などの会計文書など) を処理します。
各オブジェクトの処理は、データベースへの接続を開き、データを検索することから成ります。すべてのオブジェクトが同じデータベースで検索されるわけではありませんが、いくつかのオブジェクト プロパティに従って特定のデータベースを選択するため、複数の接続が開かれることになります。
私が実際に必要としているのは、データベースごとに 1 つだけの接続です。
だから私はこのようなことをしました:
public MyPool {
Map<String, Connection> activeConnections = new TreeMap<String, Connection>();
public Connection getConnection(String database_name) throws SQLException {
if (activeConnections.containsKey(database_name)) {
return activeConnections.get(database_name);
}
//Retrive the configuration data from a configuration object
ConnectionConfig c = Configuration.getConnectionConfig(database_name);
Connection connection = DriverManager.getConnection(c.url, c.user, c.password);
return connection;
}
質問は次のとおりです:
1) 多くのプーリング ライブラリ、DBCP、c3p0 などを見ているので、これらすべてのライブラリのポイントは何ですか?このような「基本的な」アプローチに何を追加しますか? ここで公開されている基本的なソリューションは、接続プーリングの定義に完全に適合するため、この
ようなチュートリアルはこの質問に答えるのにあまり役に立ちません。
2) これは、他の開発者に「公開」されるコードの一部であり、異なる構造を持つデータベースからデータを取得する手順を開発し、おそらくこの「プール オブジェクト」から接続を取得する可能性があります。
ドキュメントとコードでそれを「プール」と呼んでいるのは正しいですか、それとも何か違うので、「プール」を呼び出すと誤解を招く可能性がありますか?