Interogare orientată pe obiecte Java

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare
jOOQ
software
Tip Cartografiere obiect-relațională ( nelistată )
Dezvoltator Data Geekery GmbH
Sistem de operare Multiplatform
Limba Java
Licență Apache și licență comercială
( licență gratuită )
Site-ul web www.jooq.org

Interogarea orientată pe obiecte Java , cunoscută în mod obișnuit sub numele de jOOQ , este o bibliotecă software ușoară de cartografiere a bazelor de date din Java care implementează modelul de înregistrare activ. Scopul său este să fie atât relațional, cât și orientat obiect, oferind un limbaj specific domeniului pentru a construi interogări din clase generate de o schemă de baze de date .

Paradigmă

jOOQ necesită ca SQL să fie primul pe orice integrare a bazei de date. În consecință, nu introduce un nou limbaj de interogare a textului, ci mai degrabă permite construirea SQL pur din obiecte și cod jOOQ generat dintr-o schemă de baze de date. jOOQ folosește JDBC pentru a apela interogări SQL subiacente.

Deși oferă o abstracție JDBC, jOOQ nu are la fel de multe caracteristici și complexitate ca bibliotecile de cartografiere relaționale obiecte standard precum Hibernate și JPA .

Apropierea jOOQ de SQL are avantaje față de bibliotecile tipice de cartografiere relațională a obiectelor. SQL are multe caracteristici care nu pot fi utilizate într-o paradigmă de programare orientată pe obiecte ; acest set de diferențe este cunoscut sub numele de nepotrivire impedanță obiect-relațională . Fiind aproape de SQL, jOOQ ajută la prevenirea erorilor sintactice și a problemelor de tip mapare. De asemenea, are grijă de variabila de legare. De asemenea, în jOOQ este posibil să creați interogări foarte complexe, care implică aliasing , îmbinări, selecții imbricate și îmbinări complexe. JOOQ acceptă, de asemenea, funcții specifice bazei de date, cum ar fi tipurile definite de utilizator, tipurile de enumere, procedurile stocate și funcțiile native.

Exemplu

O interogare imbricată care selectează dintr-un tabel alias:

 - Selectați autori cu cărți terminate
  SELECT * DE LA AUTOR a
        UNDE EXISTĂ ( SELECT 1
                   DIN CARTE
                  UNDE REZERVĂ . STATUS = 'VANDUT'
                    ȘI CARTEA . AUTHOR_ID = a . ID );

Și echivalentul său în DSL jOOQ:

 // Utilizați tabelul alias în comanda select
  crea . selectațiDin ( tabel ( "AUTOR" ). ca ( "a" ))
        . unde ( există ( selectOne ()
                     . din ( tabel ( „CARTEA” ))
                     . unde ( câmp ( "BOOK.STATUS" ). egal ( câmp ( "BOOK_STATUS.SOLD_OUT" )))
                     . și ( câmp ( "BOOK.AUTHOR_ID" ). egal ( câmp ( "AUTHOR.ID" ))))));

Sau mai simplu, folosind codul generat din metadatele bazei de date care generează constante:

 // Utilizați tabelul aliased în instrucțiunea select
  Autor final a = AUTOR . ca ( „a” );

  crea . selectați din ( a )
        . unde ( există ( selectOne ()
                     . din ( CARTE )
                     . unde ( BOOK . STATUS . egal ( BOOK_STATUS . SOLD_OUT ))
                     . și ( BOOK . AUTHOR_ID . egal ( a . ID )))));

linkuri externe

Informatică Portal IT : accesați intrările Wikipedia care se ocupă cu IT