411 Stimmen

Datenzugriffsobjekt (DAO) in Java

Ich war in einem Dokument unterwegs und stieß auf einen Begriff namens DAO. Ich fand heraus, dass es sich um ein Data Access Object handelt. Kann mir jemand bitte erklären, was das tatsächlich ist?

Ich weiß, dass es eine Art Schnittstelle zum Zugriff auf Daten aus verschiedenen Arten von Quellen ist, und mitten in dieser kleinen Recherche bin ich auf ein Konzept gestoßen, das Datenquelle oder Datenquellenobjekt heißt, was mich noch weiter verwirrte.

Ich möchte wirklich wissen, was ein DAO programmatisch in Bezug darauf, wo es verwendet wird. Wie wird es verwendet? Links zu Seiten, die dieses Konzept von den grundlegenden Dingen erklären, sind ebenfalls willkommen.

1voto

Amrit Baghel Punkte 51

Pojo wird auch als Modellklasse in Java betrachtet, in der wir Getter und Setter für eine bestimmte Variable erstellen können, die privat definiert ist. Denke daran, dass alle Variablen hier mit dem privaten Modifier deklariert sind.

1voto

Gk Mohammad Emon Punkte 4144

Ich möchte es nur auf meine eigene Weise erklären mit einer kleinen Geschichte, die ich in einem meiner Projekte erlebt habe. Zuerst möchte ich erklären Warum ist DAO wichtig? anstatt zu Was ist DAO? für ein besseres Verständnis.

Warum ist DAO wichtig?
In einem meiner Projekte habe ich Client.class verwendet, der alle grundlegenden Informationen unserer Systembenutzer enthält. Immer wenn ich einen Client benötige, musste ich einen hässlichen Query machen, wo er benötigt wird. Dann habe ich festgestellt, dass die Lesbarkeit verringert wurde und viel redundanter Boilerplate-Code entstanden ist.

Dann hat einer meiner leitenden Entwickler eine QueryUtils.class eingeführt, in der alle Abfragen mit dem Zugriffsmodifikator public static hinzugefügt werden und ich brauche die Abfrage nicht überall zu machen. Nehmen wir an, wenn ich aktivierte Clients benötige, rufe ich einfach auf -

QueryUtils.findAllActivatedClients();

Auf diese Weise habe ich einige Optimierungen in meinem Code vorgenommen.

Aber es gab ein weiteres Problem !!!

Ich fand, dass die QueryUtils.class sehr stark anwuchs. 100+ Methoden wurden in dieser Klasse enthalten, was auch sehr mühsam zu lesen und zu verwenden war. Denn diese Klasse enthält andere Abfragen von anderen Domänenmodellen (zum Beispiel - Produkte, Kategorien, Standorte, etc.).

Dann hat der Superheld Herr CTO eine neue Lösung namens DAO eingeführt, die das Problem schließlich gelöst hat. Ich fand DAO sehr domänenspezifisch. Zum Beispiel hat er einen DAO namens ClientDAO.class erstellt, in dem alle mit Client.class verbundenen Abfragen gefunden werden, was für mich sehr einfach zu verwenden und zu pflegen erschien. Die riesige QueryUtils.class wurde in viele andere domänenspezifische DAO aufgeteilt, z.B. ProductsDAO.class, CategoriesDAO.class, etc., was den Code lesbarer, pflegbarer und entkoppelter machte.

Was ist DAO?

Es ist ein Objekt oder eine Schnittstelle, die einen einfachen Zugriff auf Daten aus der Datenbank ermöglicht, ohne jedes Mal auf komplexe und hässliche Abfragen in einer wiederverwendbaren Weise zu schreiben.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X