Java-dataobjekter - Java Data Objects

Java Data Objects ( JDO ) er en specifikation af Java- objektets vedholdenhed . En af funktionerne er gennemsigtighed af vedvarende tjenester til domænemodellen . JDO vedvarende objekter er almindelige Java programmeringssprog klasser ( POJOs ); der er ikke noget krav for dem at implementere bestemte grænseflader eller strække sig fra specielle klasser. JDO 1.0 blev udviklet under Java Community Process som JSR 12 . JDO 2.0 blev udviklet under JSR 243 og blev frigivet den 10. maj 2006. JDO 2.1 blev afsluttet i februar 2008, udviklet af Apache JDO- projektet. JDO 2.2 blev frigivet i oktober 2008. JDO 3.0 blev frigivet i april 2010.

Objekt persistens er defineret i de eksterne XML- metafiler, som muligvis har leverandørspecifikke udvidelser. JDO-leverandører forsyner udviklere med enhancere , der ændrer kompilerede Java-klassefiler, så de kan være vedvarende. (Bemærk, at byte-kodeforbedring ikke er påkrævet af JDO-specifikationen, selvom det er den almindeligt anvendte mekanisme til implementering af JDO-specifikationens krav.) I øjeblikket tilbyder JDO-leverandører flere muligheder for vedholdenhed, f.eks. Til RDBMS , til OODB eller til filer .

JDO-forbedrede klasser er bærbare på tværs af forskellige leverandørers implementering. Når den er forbedret, kan en Java-klasse bruges med enhver leverandørs JDO-produkt.

JDO er integreret med Java EE på flere måder. Først og fremmest kan leverandørimplementeringen leveres som en JEE-forbindelse . For det andet kan JDO muligvis arbejde i sammenhæng med JEE- transaktionstjenester .

JDO vs. EJB3 vs. JPA

Enterprise JavaBeans 3.0 (EJB3) specifikation dækkede også vedholdenhed, ligesom EJB v2 med Entity Beans . Der har været standardkonflikter mellem de to standardorganer med hensyn til overlegenhed. JDO har flere kommercielle implementeringer.

I sidste ende er vedholdenhed blevet "brudt ud" af "EJB3 Core", og en ny standard dannet, Java Persistence API (JPA). JPA bruger javax.persistence pakken og blev først specificeret i et separat dokument inden for EJB3 spec JSR 220 , men blev senere flyttet til sin egen spec JSR 317 . Betydeligt, javax.persistence vil ikke kræve en EJB container, og dermed vil arbejde inden for et Java SE miljøet såvel, som JDO altid har. JPA er imidlertid en standardrelateret kortlægningsstandard (ORM), mens JDO både er en standardrelateret kortlægningsstandard og en gennemsigtig standard for standardbestandighed. Fra et API-synspunkt er JDO agnostisk for teknologien i den underliggende datalager, hvorimod JPA er målrettet mod RDBMS-datalagre (selvom der er flere JPA-udbydere, der understøtter adgang til ikke-relationelle datalagre gennem JPA API, såsom DataNucleus og ObjectDB).

Førende JDO-kommercielle implementeringer og open source-projekter tilbyder også en JPA API-implementering som en alternativ adgang til deres underliggende persistensmotorer, der tidligere kun blev eksponeret via JDO i de originale produkter. Der er mange open source-implementeringer af JDO.

Nye funktioner i JDO version 2 findes ikke i version 1

  • Frakoblet koncept for objektgrafer
  • Standardiserede ORM-kortlægningsbeskrivere (til ORM-baserede JDO-implementeringer)
  • JDOQL-forbedringer (enkelt strengformular; flere streng-, kort- og matematikmetoder understøtter mandat)
  • Få f.eks. Et Connection fra javax.jdo.PersistenceManager
  • Mere: Navngivne forespørgsler (pm.newNamedQuery), FetchPlan, Sekvens, Slet efter forespørgsel, flere brugerobjekter på PM

JDO-referenceimplementeringer

Se også

Bibliografi

  • Jordan, David; Russell, Craig (22. april 2003). Java Data Objects (1. udgave). O'Reilly Media . s. 384. ISBN   0-596-00276-9 .
  • Tyagi, Sameer; Vorburger, Michael; McCammon, Keiron; Bobzin, Heiko (21. september 2003). Core Java Data Objects (1. udgave). Prentice Hall . s. 576. ISBN   0-13-140731-7 .
  • Ezzio, David (6. juni 2003). Brug og forståelse af Java-dataobjekter (1. udgave). Apress . s. 456. ISBN   1-59059-043-0 .

eksterne links