Mi a különbség a JPA és a JDBC között?


Válasz 1:

A JDBC egy standard eszköz az adatbázishoz történő közvetlen csatlakozáshoz és az SQL futtatásához, például válassza a * a TableName alkalmazásból stb. , beillesztési eljárások stb. Ez a legtöbb Java DBA mögött rejlő technológiák (ideértve a JPA szolgáltatókat is).

A tradicionális JDBC alkalmazások egyik fő problémája az, hogy a felhasználónak gyakran lehet valamiféle crappy kódja, ahol a logikát keverik az SQL-hez, rengeteg leképezés történik az adatkészletek és az objektumok között, stb.

A JPA az objektumok relációs leképezésének hivatalos eszköze. A JPA egy olyan technológia, amely lehetővé teszi a felhasználó számára a kód- és az adatbázis-táblázatokban lévő objektumok közötti térképezést. A JPA "elrejtheti" az SQL-t a fejlesztőtől, hogy az összes Java osztályon belül foglalkozzon, és a szolgáltató lehetővé teszi, hogy mentje és távolról betöltse őket. Leginkább az XML leképezési fájlok vagy kommentárok a beállítókon és gettereknél használhatók a JPA szolgáltató elmondására. mely mezők a felhasználói objektumtérképen és a DB melyik mezői. A hibernátum a legnépszerűbb JPA szolgáltató.

néhány más példa, beleértve az OpenJPA-t, a toplink-et stb.

Hibernált és más népszerű JPA szolgáltatók írnak SQL-t, és a JDBC használatával olvasnak és írnak a DB-ből és a DB-ből.

Köszönöm.

Ha tetszik a válaszom, akkor szavazzon fel.


Válasz 2:

Könnyű lenne megérteni a két különbséget, ha kezdő vagy. Úgy gondolom, hogy azzal kell kezdenie, ha először megérti a különbséget a JDBC és a Hibernált között. Remélem tudom, mi is a JDBC, még rövid ismertetésként: A JDBC a Java Database Connectivity-t jelenti. A JDBC egy Java API, amely összeköti és végrehajtja a lekérdezést a db-vel. Ez biztosítja az illesztőprogramok számára a kapcsolatot a db-vel. A JDBC API-val bármilyen relációs adatbázisban tárolt táblázatos adatokhoz hozzáférhet. A JDBC API segítségével adatokat menthetünk, frissíthetünk, törölhetünk és letölthetünk az adatbázisból.

Mi van hibernált? Ez egy olyan keretrendszer, amely eltér a JDBC-től, azaz a Hibernált könyvtárak importálása előtt használja őket, míg a JDBC maga a J2SE része. A Hibernálás ugyanazt csinálja, ahogyan a JDBC-t kifejlesztették, de mondhatjuk, hogy a Hibernálás a JDBC előrehaladott szintje. A hibernálás leegyszerűsíti a Java alkalmazás fejlesztését az adatbázisokkal való interakcióhoz. Ez egy ORM eszköz, azaz azt jelenti, hogy a java objektumokat leképezi a db táblákkal. Egy java osztály képviselhet egy táblát db-ben. Például, ha az "emp_26" táblát Munkavállalói osztályként hibernálja, akkor egyszerű objektum-orientált lekérdezést ír az összes alkalmazott lekérdezéséhez az empl_26 táblából: "Munkavállalóból" // Hibernált "válassza * az emp_26-ból" // JDBC.

A pokoli sok olyan szolgáltatás, amelyet a Hibernátum nyújt, például a gyorsítótár, az asszociáció-feltérképezés, az öröklés-feltérképezés, a HQL, a lapozás, még sok más, amelyek a JDBC-ben nem érhetők el.

A JPA-hoz jön, ez egy specifikáció, osztályok és interfészek halmaza. A JPA-nak szüksége van egy eszközre annak végrehajtásához, és az eszköz hibernált lehet. A JPA megvalósításával megteheti ugyanazt, mint a Hibernátum, de a JPA formátumban. Ha a JPA tánc, akkor Hibernált vagy más eszköz szükséges ahhoz, hogy táncszínpadot biztosítson neki. Egyébként nem azt jelenti, hogy a hibernált nem tud táncolni a JPA nélkül, a hibernátusnak megvan a saját tánca is.


Válasz 3:

A JDBC egy szabvány a DB-hez való közvetlen csatlakozáshoz és az SQL futtatásához - pl. SELECT * FELHASZNÁLÓKtól stb. Visszaadhatók az adatkészletek, amelyeket az alkalmazásában kezelhet, és megteheti az összes szokásos dolgot, például az INSERT, DELETE, tárolt eljárások futtatása stb. Ez a legtöbb Java adatbázis-hozzáférés mögött rejlő technológiák (ideértve a JPA szolgáltatókat is).

A tradicionális JDBC alkalmazások egyik problémája az, hogy gyakran van olyan rekedt kódja, ahol sok leképezés történik az adatkészletek és az objektumok között, a logika keveredik az SQL-vel stb.

A JPA az objektum-relációs leképezés szabványa. Ez egy olyan technológia, amely lehetővé teszi a kód- és az adatbázis-táblázatokban lévő objektumok közötti térképezést. Ez elrejtheti az SQL-t a fejlesztőtől, így azokkal csak Java osztályok foglalkoznak, és a szolgáltató lehetővé teszi, hogy mentje és varázslatosan töltse be őket. Leginkább az XML leképezési fájlok vagy kommentárok a gettereknél és beállítóknál felhasználhatók arra, hogy megmondják a JPA szolgáltatónak, hogy melyik mezőt látja az objektumtérképen és a DB melyik mezője. A JPA leghíresebb szolgáltatója a Hibernátus, tehát jó hely a konkrét példák elindításához.

További példák az OpenJPA, a toplink stb.