Jaký je rozdíl mezi JPA a JDBC?


Odpověď 1:

JDBC je standardní nástroj pro přímé připojení k databázi a spuštění SQL proti ní, například vyberte * z TableName atd. Lze vrátit datové sady, které uživatel může zpracovat ve své aplikaci, a může provádět všechny obvyklé věci, jako je aktualizace, mazání , vložte procedury atd. Jedná se o jednu ze základních technologií většiny Java DBA (včetně poskytovatelů JPA).

Jedním z hlavních problémů s tradičními aplikacemi JDBC je to, že uživatel může často mít nějaký mizerný kód, kde je logika smíchána s SQL, dochází k velkému množství mapování mezi datovými sadami a objekty atd.

JPA je oficiální nástroj pro objektové relační mapování. JPA je technologie, která umožňuje uživateli mapovat mezi objekty v kódových a databázových tabulkách. JPA může „skrýt“ SQL před vývojářem, takže vše, co řeší v rámci tříd Java, a poskytovatel vám umožní uložit je a načíst je vzdáleně. Většinou lze použít k mapování poskytovatele JPA mapovací soubory XML nebo anotace na setrech a getterech. která pole na uživatelském objektu mapují, na která pole v DB. hibernace je nejoblíbenějším poskytovatelem JPA.

některé další příklady včetně OpenJPA, toplink atd.

Hibernace a další populární poskytovatelé pro JPA psát SQL a používat JDBC pro čtení a zápis z a do DB.

Děkuji.

pokud se vám líbí moje odpověď, pak ji hlasujte.


Odpověď 2:

Bylo by trochu složité pochopit rozdíl obou, pokud jste začátečník. Myslím, že u by měl začít tím, že nejprve pochopí rozdíl mezi JDBC a Hibernate. Doufám, že u vím, co je JDBC, stále jako popis breif: JDBC je zkratka pro Java Database Connectivity. JDBC je Java API pro připojení a provedení dotazu s db. Poskytuje ovladače pro připojení k db. Pomocí JDBC API můžete přistupovat k tabulkovým datům uloženým v jakékoli relační databázi. Pomocí JDBC API můžeme ukládat, aktualizovat, mazat a načítat data z databáze.

Co je to Hibernace? Je to rámec, na rozdíl od JDBC, u hav importovat knihovny Hibernate před použitím, zatímco JDBC je součástí samotného J2SE. Hibernate dělá to samé, k čemu je JDBC vyvinuto, ale u lze říci, že Hibernate je pokroková úroveň JDBC. Hibernace zjednodušuje vývoj aplikací Java pro interakci s databází. Jedná se o nástroj ORM, což znamená, že mapuje objekty java s tabulkami db. Třída java může představovat tabulku v db. Pokud jste například namapovali tabulku „emp_26“ jako třídu Zaměstnanci v režimu spánku, pak byste napsali jednoduchý objektově orientovaný dotaz, který načte všechny zaměstnance z tabulky empl_26: „z Zaměstnanec“ // v režimu spánku “vyberte * z typu emp_26" // in JDBC.

Existuje spousta funkcí, které Hibernate poskytuje, jako je cache, mapování asociací, mapování dědičnosti, HQL, stránkování a mnoho dalších, které v JDBC nejsou k dispozici.

Pokud jde o JPA, jedná se o specifikaci, je to sada tříd a rozhraní. JPA potřebuje nástroj k jeho implementaci a tento nástroj může být Hibernace. Implementací JPA můžete dělat to samé, co Hibernate dělá, ale ve formátu JPA.Je-li JPA tanec, pak je třeba Hibernate nebo nějaký jiný nástroj, který mu poskytne taneční scénu. Mimochodem to neznamená, že Hibernate nemůže tančit bez JPA, Hibernate má také svůj vlastní tanec.


Odpověď 3:

JDBC je standard pro přímé připojení k DB a běh SQL proti němu - např. VYBRAT * OD UŽIVATELŮ atd. Lze vracet datové sady, které můžete zpracovat v aplikaci, a můžete provádět všechny obvyklé věci jako VLOŽIT, ODSTRANIT, spouštět uložené procedury atd. Jedná se o jednu ze základních technologií, která stojí za většinou přístupu k databázi Java (včetně poskytovatelů JPA).

Jedním z problémů s tradičními aplikacemi JDBC je to, že často můžete mít nějaký mizerný kód, kde dochází k velkému množství mapování mezi datovými sadami a objekty, logika je smíchána s SQL atd.

JPA je standard pro objektové relační mapování. Jedná se o technologii, která umožňuje mapovat mezi objekty v kódových a databázových tabulkách. To může „skrýt“ SQL před vývojářem, takže vše, co se týká, jsou třídy jazyka Java a poskytovatel vám umožňuje jejich uložení a magické načtení. Většinou lze použít mapovací soubory XML nebo anotace na getterech a setterech, aby poskytovateli JPA sdělili, která pole na mapě vašich objektů, do kterých polí v DB. Nejznámějším poskytovatelem JPA je Hibernate, takže je to dobré místo, kde začít konkrétními příklady.

Mezi další příklady patří OpenJPA, toplink atd.