Diferența dintre JDO și Obiect de valoare

Obiect JDO vs. Valoare

JDO este o tehnologie de persistență Java care poate fi utilizată pentru a stoca POJO (obiecte simple Java obișnuite) în baze de date fără a fi nevoie să se înțeleagă implementările care stau la baza diferitelor stocări de date. Obiectul de valoare (cunoscut și ca "Obiectul de transfer de date") este un model abstract de design care introduce conceptul de suport simplu de date în scopul transferului de date între mai multe straturi și niveluri.

Ce este JDO?

JDO (Java Data Objects) oferă un mecanism pentru a furniza persistență obiectelor Java și acces la baze de date. JDO este foarte transparent, deoarece permite dezvoltatorilor de aplicații Java să acceseze datele care stau la baza acestora fără a fi nevoie să scrieți coduri specifice bazelor de date. JDO poate fi folosit pe mai multe niveluri, inclusiv Java Standard Edition, servere Web și servere de aplicații. JDO API este o alternativă la alte persistențe (păstrarea obiectelor după avortul programului) a obiectelor Java precum Serialization, JDBC (Java DataBase Connectivity) și EJB CMP (Enterprise JavaBeans architecture Container Managed Persistence). JDO utilizează XML și îmbunătățirea bytecode. Principalul avantaj al utilizării JDO API este că aceștia pot stoca date fără a fi nevoie să învețe o nouă limbă de interogare, cum ar fi SQL (care depinde de tipul de stocare a datelor). JDO este foarte ușor de utilizat, deoarece dezvoltatorii se pot concentra doar pe modelul de obiect al domeniului. Nu numai acest lucru, JDO optimizează codul în sine în funcție de accesul la date. Deoarece JDO API nu este strict pe tipul de magazin de date, aceeași interfață poate fi utilizată de către dezvoltatorii de aplicații java pentru a stoca obiecte java în orice magazin de date, inclusiv baza de date relațională, bază de date obiect sau XML. JDO este extrem de portabil, deoarece modificarea sau recompilarea nu este necesară pentru a rula pe diferite implementări ale furnizorului.

Ce este Obiect de valoare?

Obiectul de valoare, cunoscut și sub denumirea de Obiect de transfer de date (DTO), este un model simplu de design abstract care se ocupă de un container de date care deține date în scopul transferului de date între straturi și niveluri. Deși termenul cel mai precis pentru acest model este Obiectul de transfer de date, din cauza unei greșeli în prima versiune Core J2EE, a fost introdusă ca Obiect de valoare. Deși această greșeală a fost corectată în ediția a II-a, acest nume a devenit popular și este folosit în continuare puternic în locul obiectului Data Transfer Object (dar trebuie remarcat că termenul corect este Obiectul transferului de date). Modelul de design DTO este utilizat cu fasole entitate, JDBC și JDO pentru a remedia problemele apărute în ceea ce privește izolarea și tranzacțiile în aplicațiile întreprinderii. Este important să rețineți că aceștia sunt doar deținători de date simpli utilizați pentru a transfera date între client și baza de date și nu oferă nici un fel de persistență. DTO servește scopului de a acționa ca obiecte Serializabile în EJB tradițional (deoarece fasolea entității înainte de 3.0 nu este serializabilă). Într-o fază separată de asamblare definită de DTO, toate datele utilizate de vizualizare sunt achiziționate și marshalate înainte de eliberarea controlului pe stratul de prezentare.

Care este diferența dintre JDO și Obiect de valoare?

JDO este de fapt o tehnologie de persistență folosită pentru stocarea obiectelor Java în baze de date, ceea ce le conferă dezvoltatorilor avantaje prin manipularea tuturor detaliilor la nivel de implementare și permițând dezvoltatorilor să se concentreze asupra codării specifice bazei de date. Dar Obiectul Valoare reprezintă un model de design abstract (nu o tehnologie) care oferă un suport generic de date cunoscut sub numele de Obiect de transfer de date care poate deține date în scopul transferului între client și baze de date. JDO furnizează facilitatea elementelor de date persistente, în timp ce Obiectul valorii se ocupă numai de păstrarea temporară a datelor în timpul perioadei de transfer de date. Cu alte cuvinte, valoarea Object nu oferă persistență.