0

Spring と JDBCTemplates (ORM なし) を使用して、CMS データベースに対抗する DAO を作成しました。

別のデータベースにアクセスする必要があります。別の DAO を作成するか、1 つの大きな DAO を使用する必要がありますか? 私の場合はどちらでもうまくいくようです。インターフェイスはありますが、汎用インターフェイスではありません。監査テーブルへの INSERT 以外は、値を取得するだけです。したがって、このリンクごとに、テーブルごとに個別の CRUD サービスが必要だとは思わない

あまり重要ではないと思いますが、データベースの 1 つは MySQL で、もう 1 つは Oracle です。

4

3 に答える 3

4

グーグルでDAOパターンについて読むことができますが、一般に、「テーブル」または関連するテーブルのグループごとに1つのDAOを作成します。それが「データベース」の意味かどうかはわかりません。用語をそのように使う人もいます。(「データベース」を説明するために質問を更新しました。したがって、通常、データベースごとに複数のDAOがあり、テーブルまたは関連テーブルのセットごとに1つがあります。)

あ、はい"

注: 「関連テーブル」と言うときは、説明が必要な場合があります。たとえば、請求書テーブルとinvoice_detail テーブルがあるとします。詳細行は通常、紙の請求書の行のようなもので、請求書テーブルの請求書 ID または請求書番号に戻る外部キーがあります。テーブルは 2 つありますが、請求書とそれに関連する詳細を処理する DAO はおそらく 1 つです。請求書番号別、顧客別、日付別の請求書を取得する方法や、詳細行の 1 つに特定の品目がある月のすべての請求書を取得する方法があるかもしれません。請求書を作成し、その上にすべての行を作成する方法があります。などなど。1 つの DAO で複数のテーブル。

詳細行には、部品の詳細を含む「部品」テーブルを指す外部キーがある場合があります。部品情報を読んで請求書と一緒に返送したい場合や、請求書を読んだ後に部品を個別に読みたい場合があります。後者の場合、parts レコードを読み取り、場合によっては変更するメソッドを持つ 2 番目の DAO が存在します。

この例では、MySQL であれ Oracle であれ、これらがすべて同じデータベースにあることを前提としています。

于 2013-03-07T19:58:50.763 に答える
1

DataSourceを作成するために順番に使用する DAO に を注入する必要がありますSimpleJdbcTemplate。は特定のデータベースに接続するため、データベースごとに個別の DAO/ s/ sDataSourceが必要になります。DataSourceSimpleJdbcTemplate

于 2013-03-07T22:11:06.807 に答える
0

Springアプリケーションでは、テーブルまたはデータエンティティごとに複数の「DAO」を設定できますが、データベース呼び出しを分離する必要があります。さらに、Springは個別の接続パラメーターを認識している必要があり、applicationContextのDAO定義を使用して分離できます。これは、他のデータベースからの取得を処理するためのRESTWebサービスの候補のように聞こえます。

于 2013-03-07T20:11:53.510 に答える