Die meisten der DAO-Beispiele, die ich gesehen habe, bestehen aus einfachen Abfragen, die nur eine Tabelle enthalten.Entwerfen eines DAO-Modells für ein vorhandenes Projekt
Ich arbeite an Refactoring eines Projekts ohne DAO, die viele SQL-Abfragen hat, wo mehrere Tabellen verwendet werden. Meine Frage ist , wie man das Modell für das DAO am besten entwirft? In den folgenden Beispielen könnte ich ein Objekt erstellen, das jede spezifische Abfrage abdeckt. Ich bin jedoch unsicher, ob dies eine gute Praxis ist oder nicht. z.B. ist es besser, ein Objekt zu haben, das jede db-Tabelle repräsentiert?
CustomerPaymentDAO diese Abfrage zu decken:
select
a.username,
p.creation_date,
p.amount,
c.card_type
from
account a,
payment p,
payment_type t,
payment_card c
where
...
CustomerPurchaseDAO diese Abfrage zu decken:
select
a.username,
i.name,
i.cost,
c.name,
v.value
from
account a,
item i,
category c,
voucher v
where
...
In OO gibt DAO normalerweise ein Objekt oder eine Objektgruppe zurück, mit der das DAO verknüpft ist. Dann navigieren Sie in den Beziehungen, um Werte von verwandten Objekten zu erhalten. Aber Sie können das tun, was am logischsten erscheint. Solange die DAO-Schicht den technischen Mittelwert für den Zugriff auf die Daten kapselt (eine Excel-Datei, eine Datenbank über Hibernate, eine DB über JDBC) –