Unterschied zwischen JDO und Wertobjekt

Anonim

erforderlich ist. Plain Old Java Objects) in Datenbanken, ohne die zugrundeliegenden Implementierungen verschiedener Datenspeicher zu verstehen. Wertobjekt (auch als Datenübertragungsobjekt bezeichnet) ist ein abstraktes Designmuster, das das Konzept eines einfachen Datenhalters zum Zwecke der Datenübertragung zwischen mehreren Ebenen und Ebenen einführt.

Was ist JDO?

JDO (Java Data Objects) bietet einen Mechanismus zur Bereitstellung von Persistenz für Java-Objekte und Datenbankzugriff. JDO ist hochgradig transparent, da es den Entwicklern von Java-Anwendungen ermöglicht, auf die zugrunde liegenden Daten zuzugreifen, ohne einen für Datenbanken spezifischen Code schreiben zu müssen. JDO kann über mehrere Ebenen hinweg verwendet werden, einschließlich Java Standard Edition, Web-Tier und Anwendungsserver. JDO API ist eine Alternative zu anderen Persistenzen (die Objekte nach dem Abbruch des Programms beibehalten) von Java-Objekten wie Serialisierung, JDBC (Java DataBase Connectivity) und EJB CMP (Enterprise JavaBeans Architektur Container Managed Persistence). JDO verwendet XML und Erweiterung des Bytecodes. Der Hauptvorteil der Verwendung von JDO API besteht darin, dass sie Daten speichern können, ohne dass eine neue Abfragesprache wie SQL benötigt wird (was von der Art des Datenspeichers abhängt). JDO ist sehr einfach zu verwenden, da Entwickler sich nur auf ihr Domänenobjektmodell konzentrieren können. Nicht nur das, JDO optimiert den Code selbst nach Datenzugriff. Da die JDO-API für den Typ des Datenspeichers nicht streng ist, können die Java-Anwendungsentwickler dieselbe Schnittstelle für die Speicherung von Java-Objekten in beliebigen Datenspeichern verwenden, einschließlich relationaler Datenbanken, Objektdatenbanken oder XML-Dateien. JDO ist sehr portabel, da keine Modifikation oder Neukompilierung für die Implementierung verschiedener Herstellerimplementierungen erforderlich ist.

Was ist Value Object?

Das auch als Datenübertragungsobjekte (Data Transfer Objects, DTO) bezeichnete Wertobjekt ist ein einfaches abstraktes Entwurfsmuster, das sich mit einem Datencontainer befasst, der Daten zum Übertragen von Daten zwischen Ebenen und Ebenen enthält. Obwohl der genaueste Begriff für dieses Muster das Datenübertragungsobjekt ist, wurde es aufgrund eines Fehlers in der ersten Version von Core J2EE als Wertobjekt eingeführt. Obwohl dieser Fehler in der 2. Auflage korrigiert wurde, wurde dieser Name populär und wird immer noch stark anstelle von Datenübertragungsobjekt verwendet (aber es sollte beachtet werden, dass der korrekte Begriff Datenübertragungsobjekt ist). Das DTO-Entwurfsmuster wird bei Entity-Beans, JDBC und JDO verwendet, um Probleme zu beheben, die in Bezug auf Isolation und Transaktionen in Unternehmensanwendungen auftreten. Es ist wichtig zu beachten, dass dies nur einfache Datenhalter sind, die Daten zwischen dem Client und der Datenbank übertragen, und sie bieten keine Persistenz.DTO dient dem Zweck, als serialisierbare Objekte in traditionellem EJB zu agieren (da Entity-Beans vor 3. 0 nicht serialisierbar sind). In einer separaten Assembly-Phase, die von DTO definiert wird, werden alle Daten, die von der View verwendet werden, vor der Freigabe der Kontrolle an die Präsentationsschicht erfasst und gemarshallt.

Was ist der Unterschied zwischen JDO und Value Object?

JDO ist eine Persistenz-Technologie, mit der Java-Objekte in Datenbanken gespeichert werden, was den Entwicklern den Komfort bietet, indem sie alle Details der Implementierungsebene behandelt und es den Entwicklern ermöglicht, sich auf nicht datenbankspezifische Kodierungen zu konzentrieren. Das Value-Objekt stellt jedoch ein abstraktes Entwurfsmuster (keine Technologie) dar, das einen generischen Datenbehälter bereitstellt, der als Datenübertragungsobjekt bekannt ist und Daten zum Zweck der Übertragung zwischen Client und Datenbanken speichern kann. JDO bietet die Möglichkeit, Datenobjekte zu persistieren, während Value Object nur die Daten während des Zeitraums der Datenübertragung vorübergehend verwaltet. Mit anderen Worten liefert Value Object keine Persistenz.