JDO versus Value Object
JDO is een Java-persistentietechnologie die kan worden gebruikt om POJO (Plain Old Java Objects) in databases op te slaan zonder de onderliggende implementaties van verschillende datastores te hoeven begrijpen. Value-object (ook bekend als Data Transfer Object) is een abstract ontwerppatroon dat het concept introduceert van een eenvoudige gegevenshouder voor het overdragen van gegevens tussen meerdere lagen en lagen.
Wat is JDO?
JDO (Java Data Objects) biedt een mechanisme voor het leveren van persistentie aan Java-objecten en databasetoegang. JDO is zeer transparant omdat het de ontwikkelaars van Java-toepassingen toegang geeft tot de onderliggende gegevens zonder enige code te hoeven schrijven die specifiek is voor databases. JDO kan worden gebruikt op verschillende niveaus, waaronder Java Standard Edition, Web-tier en applicatieservers. JDO API is een alternatief voor andere persistentie (het behouden van objecten na de abortus van het programma) van Java-objecten zoals serialisatie, JDBC (Java DataBase Connectivity) en EJB CMP (Enterprise JavaBeans-architectuur Container Managed Persistence). JDO gebruikt XML en verbetering van bytecode. Het belangrijkste voordeel van het gebruik van de JDO API is dat ze gegevens kunnen opslaan zonder een nieuwe querytaal zoals SQL (die afhankelijk is van het type gegevensopslag) te leren. JDO is heel gemakkelijk te gebruiken, omdat ontwikkelaars zich alleen kunnen richten op hun domeinobjectmodel. Niet alleen dit, JDO optimaliseert de code zelf op basis van gegevenstoegang. Omdat de API van JDO niet streng is voor het type gegevensopslag, kan dezelfde interface door de ontwikkelaars van java-toepassingen worden gebruikt om java-objecten op te slaan in elk gegevensarchief, inclusief een relationele database, objectdatabase of een XML. JDO is zeer draagbaar omdat modificatie of hercompilatie niet nodig is om op verschillende leveranciersimplementaties te worden uitgevoerd.
Wat is Value Object?
Value-object, ook wel bekend als Data Transfer Objects (DTO), is een eenvoudig abstract ontwerppatroon dat zich bezig houdt met een gegevenscontainer om gegevens te bewaren met het doel gegevens over te dragen tussen lagen en lagen. Hoewel de meest accurate term voor dit patroon het Data Transfer Object is, werd het als Value Object geïntroduceerd vanwege een fout in de eerste versie van Core J2EE. Hoewel deze fout in de 2e editie werd gecorrigeerd, werd deze naam populair en wordt deze nog steeds zwaar gebruikt in plaats van Data Transfer Object (maar het moet worden opgemerkt dat de juiste term Data Transfer Object is). Het DTO-ontwerppatroon wordt gebruikt met entity beans, JDBC en JDO om problemen met betrekking tot isolatie en transacties in bedrijfstoepassingen op te lossen. Het is belangrijk op te merken dat dit slechts eenvoudige gegevenshouders zijn die worden gebruikt om gegevens tussen de client en de database over te brengen en ze bieden geen persistentie van welke aard dan ook. DTO dient om te fungeren als Serializable-objecten in traditionele EJB (aangezien entiteitbonen vóór 3.0 niet serialiseerbaar zijn). In een afzonderlijke assembleerfase die wordt gedefinieerd door DTO, worden alle gegevens die door de weergave worden gebruikt, verkregen en samengevoegd voordat de controle aan de presentatielaag wordt vrijgegeven.
Wat is het verschil tussen JDO en Value Object?
JDO is in feite een persistentietechnologie die wordt gebruikt om Java-objecten op te slaan in databases, die de ontwikkelaars gemak bieden door alle details van het implementatieniveau te verwerken en de ontwikkelaars in staat te stellen zich te concentreren op niet-databasespecifieke codering. Maar het waardeobject vertegenwoordigt een abstract ontwerppatroon (geen technologie) dat een generieke gegevenshouder biedt die bekend staat als een gegevensoverdrachtobject dat gegevens kan bevatten met het doel gegevens over te dragen tussen client en databases. JDO biedt de mogelijkheid van aanhoudende gegevensitems, terwijl Value Object zich alleen bezig houdt met het tijdelijk bewaren van gegevens tijdens de periode van gegevensoverdracht. Met andere woorden, Value Object biedt geen persistentie.