2011-08-25 14 views
12

Webアプリケーションで複数のデータベースへの接続を管理する必要があります。動的に作成されたデータベースへの接続を管理する方法

1 - 私は

2 - データベースがデータベースを管理するために、接続プールを持つ、疑いもなく

(私はMySQLを使用しています)、実行時に動的に作成されているTomcatを使用します。以下は、現在実施に関する事実です接続が最適です。 データベースはアプリケーションの開始時に分かっていないため、データソースを設定して接続プールを作成することはできませんでした。 (私は、Tomcatで動的接続プールを作成する方法を見つけることができませんでした。実行時に作成される接続プールです)。

私の質問は、複数のデータベースへの接続で効率的に作業する必要があるその他のオプションは何ですか? (自分で接続プールを実装する経験はありません) Tomcatで使用できるライブラリがあり、実行時に複数の接続プールを複数のデータベースに設定できるようにしていますか?接続プールではなく、私が何をすることをお勧めしますか? 私はこの問題をかなり新しくしています。したがって、私がコンセプトを乱しているなら、私を修正してください。

ありがとうございます。

+1

「データベース」という単語は、このコンテキストではあいまいです。 'CREATE TABLE'のように' CREATE DATABASE'や "database table"のように "データベースサーバ"や "データベース"を意味しますか? – BalusC

+0

データベースの作成と同じです。私は顧客ごとにスキーマを使用します(スキーマはデータベースです)。ご協力いただきありがとうございます。 –

+0

ありがとうございます。私は答えを掲示した。 – BalusC

答えて

14

MySQL JDBCドライバは、次のように接続URLからデータベース名を省略することができます:

jdbc:mysql://localhost:3306

あなたが唯一のSQLクエリでConnection#setCatalog()または直接してデータベースを指定する必要があります。また、そのreference documentation参照:databaseが指定されていない

場合は、デフォルトのデータベースなしで接続が作成されます。この場合、ConnectionインスタンスでsetCatalog()メソッドを呼び出すか、SQLでデータベース名(つまり、SELECT dbname.tablename.colname FROM dbname.tablename...)を使用してテーブル名を完全に指定する必要があります。接続時に使用するデータベースを指定しないのは、通常、GUIデータベースマネージャなど、複数のデータベースで動作するツールを構築する場合にのみ便利です。

これにより、Tomcatで1つの再利用可能な接続プールデータソースを作成できます。おそらく、接続マネージャーやSQL照会だけを書き直す必要があります。

+1

幸せを丁寧に表現するにはどうすればいいですか?私はベンダー固有の実装のためにそれほどシンプルであることがわかりました。ありがとうございました。あなたが示唆したように、私は接続されたデータソースを作成します(私がすでに管理しているもの)。正しいスキーマを扱うためにクエリを書き直すだけです。もう一度ありがとう:)))))) –

+1

あなたは大歓迎です。あなたは賞品を提供したり、Amazonのウィッシュリスト(私のユーザープロフィールも参照してください)から何かを送ることができます:) – BalusC

+8

done :)リストにあった最初のアイテム。 –

0

オープンに十分な接続プーリングフレームワークがあります。 Proxoolは間違いなく最高です。その非常に柔軟で使いやすい。

関連する問題