私は地理的に異なる4つのデータベースを使用するアプリケーションを持っています。すべてのデータベースには同じテーブルがあり、データベース名だけが場所によって異なります。 各データベースのデータを使用するアプリケーションでいくつかのレポートを作成する必要があります。どのような適切な方法は、Javaアプリケーションからこれらのデータベース接続を作成すると私は使用できるこのタスクのための適切なデザインパターンはありますか?Javaの異なるデータベースに複数のデータベース接続を作成する方法
答えて
、hibernate
、JPA
、ORM
については、私はあなたが、プレーンJDBCを扱っていると仮定します。
これは、基本的なデータベースを扱うためのDAOレイヤを用意し、特定の実装に接続の詳細を残すことをお勧めします。いくつかの.properties
ファイルに接続文字列を設定することができます。
[補完]
あなたがここにも合った方DAO工場、抽象工場や工場Mathodパターンの実装、利用することができます。
[リンク]
- A very fine implementation of DAO and DAO Factory、BalusC
- Core J2EE Patternsによっては - 間違いなく日付が、いくつかのアイデアを提供するかもしれません。
これを達成する理想的な方法は、OLAPのような多次元システムを使用することです。しかし、それらのデータベースからビューを作成できるかどうかを確認してください。次に、ビューを照会するだけです(つまり、単一のデータベース接続)。また、必要に応じて複数のデータベース接続を使用することもできます。
HibernateのようなORMツールを使用すると、複数の接続を簡単に処理できます。各接続を別々の構成ファイルで指定し、毎回新しいセッションファクトリを取得して必要な接続をインスタンス化できます。私はあなたが目的でFactoryパターンとSingletonパターンの組み合わせを使用することができると思うJava connecting to multiple databases
:
他の方法は、データソースとJNDIを使用することです。
あなたがこれを達成することができ、複数の方法があります:あなたは、あなたがそこに機能を使用することができ、分散トランザクションをサポートする任意のJava EEコンテナを使用している場合
- が。
- プレーンなJDBCを使用している場合は、すべてのデータベースに対して独自の接続を維持する必要があります。 JDBCの場合 :
- は、すべての接続の詳細
- 抽象ジェネリックDAOを呼び出すことによって、あなたの目的のオブジェクトを与えるファサードを持ってを提供します。
- 接続に基づいてDAOを作成するファクトリがあります。
- 複数のデータベースの設定を使用できるHibernateなどのORMツールを使用します。 Tutorial。
- Springを使用している場合、データベースごとに1つのデータソースを構成できます。 Docs
デザインパターン:
- Facadeパターン - 複雑さと複数のデータベースの使用を隠すため。
- 工場 - 自分でデータベース接続を管理する場合。
- シングルトンは - あなたがこののいずれかであなたの質問にタグ付けされていないとして、データソース
は非常に簡単です:)
1.Createデータソースは、クラスのデータベースDB
public DataSource getDataSource(String db) throws Exception {
DataSource dt = null;
InitialContext ic = null;
try {
if(db.trim().equals("you_database_name")) {
dt = (DataSource)ic.lookup("jdbc/connection_name");
} else if(db.trim().equals("you_database_name")) {
dt = (DataSource) ic.lookup("jdbc/connection_name");
}
return dt;
} catch(NamingException n) {
throw new Exception("Err getDataSource (ServiceLocator) NamingException - " + n.getMessage());
}
2.Createへの接続を試みる近いこの時点ですべての接続を覚えています。
public class DataBases {
public YouNameDataSourceClass dataSrc;
public DataBases() throws Exception {
super();
dataSrc = new YouNameDataSourceClass.getDataSource();
}
public Connection getConnectionAS400() throws Exception {
return locator.getDataSource("you_database_name").getConnection();
}
public Connection getConnectionOracle() throws Exception {
return locator.getDataSource("you_database_name").getConnection();
}
public Connection getConnectionSQLServer() throws Exception {
return locator.getDataSource("you_database_name").getConnection();
}
}
グッドルック。
- 1. J2EE - JPAの異なるデータベースに対する複数のデータベース接続
- 2. java内の複数のデータベースに接続
- 3. 複数のデータベース接続でHibernateセッションを作成するJava Webサービスで
- 4. 複数のデータベースに接続する
- 5. C#からリモートcouchbaseデータベースへのデータベース接続の作成方法
- 6. 複数のデータベース接続を動的に構成する最良の方法
- 7. laravelで複数のホスト/データベースに接続する方法
- 8. 複数のデータベースに接続する方法Spring Boot JPA?
- 9. Laravelで複数のデータベースを接続する最良の方法
- 10. Javaデータベースの接続の作成を最小限に抑える
- 11. Magentoで複数の外部データベースを接続する方法は?
- 12. 複数のデータベース接続
- 13. 複数のデータベース接続
- 14. Yii複数のデータベース接続
- 15. Express - 複数のデータベース接続
- 16. PHPの複数データベース接続
- 17. Altovaでリモートデータベースのデータベース接続を作成する方法mapforce
- 18. 異なるデータベース・バージョンへの接続
- 19. シェル・スクリプトを使用して異なるサーバーの複数のoracleデータベースに接続する方法
- 20. Javaデータベースの接続
- 21. Javaデータベース接続
- 22. asp.net mvc 6でデータベース接続を作成する方法
- 23. データベース接続でumbracoでフォームを作成する方法は?
- 24. 1つのRDSに複数のデータベースを作成する方法
- 25. 異なるラムダ関数間でデータベース接続を共有する方法
- 26. アクティブレコードに複数のデータベースへの接続
- 27. Webフォーム間で永続的なデータベース接続を作成する方法
- 28. 複数のデータベースを関数で接続
- 29. javaのSQLデータベースに接続
- 30. 2つの異なるPCをmysqlデータベースに接続する方法C#
ですが、どのように複数のDB接続がありますか? –
@ munna:すべてのDAO実装は、そのデータソースを知っています。 –