Ich habe ein Dokument durchgesehen und bin auf einen Begriff namens gestoßen DAO
. Ich habe herausgefunden, dass es sich um ein Datenzugriffsobjekt handelt. Kann mir bitte jemand erklären, was das eigentlich ist?
Ich weiß, dass es eine Art Schnittstelle für den Zugriff auf Daten aus verschiedenen Arten von Quellen ist. Während meiner kleinen Recherche bin ich auf ein Konzept gestoßen, das als Datenquelle oder Datenquellenobjekt bezeichnet wird, und die Dinge sind in meinem Kopf durcheinander geraten.
Ich möchte wirklich wissen, was a DAO
programmatisch in Bezug auf den Verwendungszweck ist. Wie wird es verwendet? Alle Links zu Seiten, die dieses Konzept aus den Grundzügen erklären, sind ebenfalls willkommen.
Es ist ein Objekt / eine Schnittstelle , mit der auf Daten aus der Datenbank der Datenspeicherung zugegriffen wird.
Es abstrahiert das Abrufen von Daten aus einer Datenressource wie einer Datenbank. Das Konzept besteht darin, "die Client-Schnittstelle einer Datenressource von ihrem Datenzugriffsmechanismus zu trennen".
Das Problem beim direkten Zugriff auf Daten besteht darin, dass sich die Datenquelle ändern kann. Angenommen, Ihre Anwendung wird in einer Umgebung bereitgestellt, die auf eine Oracle-Datenbank zugreift. Anschließend wird es in einer Umgebung bereitgestellt, die Microsoft SQL Server verwendet. Wie gehen Sie in Ihrer Anwendung damit um, wenn Ihre Anwendung gespeicherte Prozeduren und datenbankspezifischen Code verwendet (z. B. das Generieren einer Zahlenfolge)? Sie haben zwei Möglichkeiten:
Es wird insgesamt als DAO-Muster bezeichnet und besteht aus folgenden Elementen :
Beispiel
Ich gehe davon aus, dass diese Dinge Ihr Verständnis von DAO bis zu einem gewissen Grad geklärt haben müssen.
quelle
DAO (Data Access Object) ist ein sehr verbreitetes Entwurfsmuster in Unternehmensanwendungen. Grundsätzlich ist es das Modul, mit dem auf Daten aus jeder Quelle (DBMS, XML usw.) zugegriffen wird. Ich empfehle Ihnen, einige Beispiele wie dieses zu lesen:
DAO Beispiel
Bitte beachten Sie, dass es verschiedene Möglichkeiten gibt, das ursprüngliche DAO-Muster zu implementieren , und dass es viele Frameworks gibt, die Ihre Arbeit vereinfachen können. Beispielsweise werden ORM-Frameworks (Object Relational Mapping) wie iBatis oder Hibernate verwendet, um das Ergebnis von SQL-Abfragen Java-Objekten zuzuordnen.
Hoffe es hilft, Tschüss!
quelle
Das Datenzugriffsobjektmuster oder DAO-Muster wird verwendet, um Datenzugriffs-API oder Vorgänge auf niedriger Ebene von Geschäftsdiensten auf hoher Ebene zu trennen. Im Folgenden sind die Teilnehmer am Datenzugriffsobjektmuster aufgeführt.
Datenzugriffsobjektschnittstelle - Diese Schnittstelle definiert die Standardoperationen, die an einem oder mehreren Modellobjekten ausgeführt werden sollen.
Konkrete Klasse des Datenzugriffsobjekts - Diese Klasse implementiert die obige Schnittstelle. Diese Klasse ist dafür verantwortlich, Daten aus einer Datenquelle abzurufen, die Datenbank / XML oder ein anderer Speichermechanismus sein kann.
Modellobjekt oder Wertobjekt - Dieses Objekt ist ein einfaches POJO mit Get / Set-Methoden zum Speichern von Daten, die mit der DAO-Klasse abgerufen wurden.
Beispielcode hier ..
quelle
Ich werde allgemein und nicht spezifisch für Java sein, da DAO und ORM in allen Sprachen verwendet werden.
Um DAO zu verstehen, müssen Sie zuerst ORM (Object Rational Mapping) verstehen. Dies bedeutet, dass Sie, wenn Sie eine Tabelle mit dem Namen "Person" mit den Spalten "Name" und "Alter" haben, eine Objektvorlage für diese Tabelle erstellen würden:
Jetzt mit Hilfe von DAO, anstatt einige spezifische Abfragen zu schreiben, um alle Personen für jede Art von Datenbank abzurufen, die Sie verwenden (was fehleranfällig sein kann), tun Sie stattdessen:
Sie schreiben die DAO-Abstraktion nicht selbst, sondern sie ist normalerweise Teil eines OpenSource-Projekts, je nachdem, welche Sprache und welches Framework Sie verwenden.
Nun zur Hauptfrage hier. " ..wo wird es verwendet .. ". Wenn Sie komplexen geschäfts- und domänenspezifischen Code schreiben, ist Ihr Leben ohne DAO normalerweise sehr schwierig. Natürlich müssen Sie ORM und DAO nicht verwenden, sondern können Ihre eigene Abstraktion und native Abfragen schreiben. Ich habe das in der Vergangenheit getan und es später fast immer bereut.
quelle
Ich denke, das beste Beispiel (zusammen mit Erklärungen) finden Sie auf der Orakel-Website: hier . Ein weiteres gutes Tutorial finden Sie hier .
quelle
Verwechseln Sie sich nicht mit zu vielen Erklärungen. DAO: Aus dem Namen selbst geht hervor, dass mit Object auf Daten zugegriffen wird. DAO ist von anderen Geschäftslogiken getrennt.
quelle
Das Datenzugriffsobjekt verwaltet die Verbindung mit der Datenquelle, um Daten abzurufen und zu speichern. Es abstrahiert die zugrunde liegende Datenzugriffsimplementierung für das Geschäftsobjekt, um einen transparenten Zugriff auf die Datenquelle zu ermöglichen. Eine Datenquelle kann eine beliebige Datenbank wie ein RDBMS, ein XML-Repository oder ein Flatfile-System usw. sein.
quelle
Frühling JPA DAO
Zum Beispiel haben wir eine Entitätsgruppe.
Für diese Entität erstellen wir das Repository GroupRepository.
Dann müssen wir eine Service-Schicht erstellen, mit der wir dieses Repository verwenden werden.
Und in der Steuerung nutzen wir diesen Service.
quelle
DAO ist ein Act wie "Persistence Manager" in 3-Tier-Architektur sowie DAO Design Design, wie Sie in "Gang of Four" Buch lesen können. Ihre Anwendungsservice-Schicht muss nur die Methode der DAO-Klasse aufrufen, ohne versteckte und interne Details der DAO-Methode zu kennen.
quelle
Dao-Klassen werden verwendet, um die JDBC-Logik wiederzuverwenden. Dao (Datenzugriffsobjekt) ist ein Entwurfsmuster. dao ist eine einfache Java-Klasse, die JDBC-Logik enthält.
Die Datenzugriffsschicht hat sich in einer separaten Geschäftslogikschicht und einer beständigen Schicht als gut erwiesen. Das DAO-Entwurfsmuster verbirgt die Datenzugriffsimplementierung vollständig vor seinen Clients
Das Java Data Access Object (Java DAO) ist eine wichtige Komponente in Geschäftsanwendungen. Geschäftsanwendungen benötigen fast immer Zugriff auf Daten aus relationalen oder Objektdatenbanken, und die Java-Plattform bietet viele Techniken für den Zugriff auf diese Daten. Die älteste und ausgereifteste Technik ist die Verwendung der JDBC-API (Java Database Connectivity), mit der SQL-Abfragen für eine Datenbank ausgeführt und die Ergebnisse dann spaltenweise abgerufen werden können.
quelle
Pojo wird auch als Modellklasse in Java betrachtet, in der wir Getter und Setter für bestimmte Variablen erstellen können, die privat definiert sind. Denken Sie daran, dass alle Variablen hier mit dem privaten Modifikator deklariert werden
quelle