Razlika med JDBC in hibernacijo

JDBC proti hibernaciji

Java Database Connectivity (znan tudi kot JDBC) je API, posebej zasnovan za programski jezik Java. Opredeljuje, kako lahko odjemalec dostopa do baze podatkov z zagotavljanjem metod za poizvedovanje in posodabljanje podatkov v bazi podatkov. Natančneje je usmerjena v relacijske baze podatkov. Na trg je bil prvič predstavljen kot del platforme Java 2, standardna izdaja, različica 1.1 (ali J2SE). Paket je bil povezan z referenčnim implementacijskim JDBC na most ODBC, kar omogoča povezavo z API-jem do katerega koli podatkovnega vira, dostopnega ODBC v gostiteljskem okolju JVM.

Hibernate je objektno usmerjena knjižnica za mapiranje (ali knjižnica ORM), izdelana posebej za jezik Java. Ponuja okvir za preslikavo objektno usmerjenega modela domene v tradicionalno relacijsko bazo podatkov. Prav tako rešuje težave neusklajenosti objektne relacijske impedance - to je težave, pri katerih program za upravljanje relacijskih baz podatkov (ali RDBMS) uporablja program, napisan v objektno usmerjenem programskem jeziku ali slogu. To doseže z nadomeščanjem neposrednih dostopov do baze podatkov s funkcijami upravljanja na visoki ravni. Je brezplačna, odprtokodna programska oprema in se distribuira pod GNU Lesser General Public License.

JDBC deluje tako, da omogoča ista različica implementacij in jih uporablja ista aplikacija. Ponuja mehanizem, s katerim se pravilni paketi Java dinamično naložijo in registrirajo v upravitelju gonilnikov JDBC - ki se uporablja kot tovarna povezav, ki ustvarja povezave JDBC. Te povezave podpirajo ustvarjanje in izvajanje stavkov. Lahko so izjave o posodobitvah (na primer SQL-ji CREATE, INSERT, UPDATE in DELETE). Lahko so tudi poizvedbeni stavki, kot je SELECT. Povezava JDBC lahko prikliče tudi shranjene postopke - to so tisti postopki, ki so shranjeni v slovarju podatkov baze podatkov.

Hibernacija primarno deluje tako, da preslika iz razredov Java v tabele baz podatkov, kot tudi iz podatkovnih vrst Java v podatkovne tipe SQL. Ponuja tudi zmogljivosti za poizvedbo in iskanje podatkov. Sposobna je ustvariti klice SQL in s tem razvijalca razbremeni ročnega upravljanja z nizom rezultatov in pretvorbe predmetov. S tem je aplikacija prenosna v vse baze podatkov SQL, ki jih podpira knjižnica. Java razrede preslika v tabele baz podatkov s konfiguriranjem datoteke XML (v kateri Hibernate lahko ustvari skeletno izvorno kodo za razrede obstojnosti) ali z uporabo Java Annotation (zaradi česar je prejšnji akcijski spor). Hibernate podpira tudi preslikavo vrst vrednosti po meri, kar omogoča tri posebne scenarije: preglasitev privzetega tipa SQL, ki ga je Hibernate izbral pri preslikavi stolpca v lastnost; preslikavo Java Enum v stolpce, kot da bi bili navadne lastnosti; in preslikavo ene lastnosti v več stolpcev.

Povzetek:

1. JDBC je API, ki določa, kako lahko stranka dostopa do baze podatkov; Hibernate je knjižnica ORM, ki zagotavlja okvir za preslikavo objektno usmerjenega modela domene v tradicionalno relacijsko bazo podatkov.

2. JDBC omogoča, da obstajajo različne izvedbe in jih uporablja ista aplikacija; Hibernacijski zemljevidi od razredov Java do tabel baze podatkov.