Vad är skillnaden mellan JPA och JDBC?


Svar 1:

JDBC är ett standardverktyg för att ansluta till en databas direkt och köra SQL mot den, till exempel välja * från tabellnamn, etc. Datauppsättningar kan returneras som användaren kan hantera i sin app, och han kan göra alla vanliga saker som att uppdatera, ta bort , infoga procedurer osv. Det är en av de underliggande teknologierna bakom de flesta Java DBA (inklusive JPA-leverantörer).

Ett huvudproblem med traditionella JDBC-appar är att användaren ofta kan ha en viss crappy-kod där logik blandas med SQL, massor av mappning mellan datauppsättningar och objekt inträffar, etc.

JPA är ett officiellt verktyg för Object Relational Mapping. JPA är en teknik som gör det möjligt för användare att kartlägga mellan objekt i kod- och databastabeller. JPA kan "dölja" SQL från utvecklaren så att allt de handlar inom Java-klasser, och leverantören låter dig spara dem och ladda dem på distans. Oftast kan XML-mappningsfiler eller anteckningar på seters och getters användas för att berätta för JPA-leverantören. vilka fält på användarobjektkarta till vilka fält i DB. viloläge är den mest populära JPA-leverantören.

några andra exempel inklusive OpenJPA, toplink, etc.

Viloläge och andra populära leverantörer för JPA skriver SQL och använder JDBC för att läsa och skriva från och till DB.

Tack.

Om du gillar mitt svar så skriv det.


Svar 2:

Det skulle vara svårt att förstå skillnaden mellan båda om du är nybörjare. Jag tycker att du bör börja med att först förstå skillnaden mellan JDBC och Viloläge. Jag hoppas att du vet vad JDBC är, fortfarande som en breifbeskrivning: JDBC står för Java Database Connectivity. JDBC är ett Java API för att ansluta och köra frågan med db. Det ger förare att ansluta till db. Du kan använda JDBC API för att få åtkomst till tabelldata lagrade i valfri databas. Med hjälp av JDBC API kan vi spara, uppdatera, ta bort och hämta data från databasen.

Vad är Viloläge? Det är ett ramverk till skillnad från JDBC, du måste importera viloläggsbibliotek innan du använder det, medan JDBC är en del av J2SE själv. Hibernate gör samma sak som JDBC är utvecklad för, men du kan säga Hibernate är en avancerad nivå för JDBC. Viloläge förenklar utvecklingen av Java-applikationer för att interagera med databasen. Det är ett ORM-verktyg, vilket innebär att det kartlägger java-objekten med db-tabellerna. En java klass kan representera en tabell i db. Om du till exempel kartlade "emp_26" -tabellen som anställdsklass i viloläge skulle du skriva en enkel objektorienterad fråga för att hämta alla anställda från tabellen empl_26: "från anställd" // i viloläge "välj * från emp_26" // i JDBC.

Det finns väldigt många funktioner som Hibernate tillhandahåller som cache, associeringskartläggning, arvskartläggning, HQL, pagination och många fler som inte är tillgängliga i JDBC.

Kommer till JPA, det är en specifikation, det är en uppsättning klasser och gränssnitt. JPA behöver ett verktyg för att få det implementerat och det verktyget kan vara viloläge. Genom att implementera JPA, kan du göra samma sak som Viloläge gör, men i formatet av JPA. Om JPA är en dans så behövs Viloläge eller något annat verktyg för att ge den en dans-scen. Det betyder förresten inte att Hibernate inte kan dansa utan JPA, Hibernate har också en egen dans.


Svar 3:

JDBC är en standard för att ansluta till en DB direkt och köra SQL mot den - t.ex. VÄLJ * FRÅN ANVÄNDARE, etc. Datauppsättningar kan returneras som du kan hantera i din app, och du kan göra alla vanliga saker som INSERT, DELETE, köra lagrade procedurer osv. Det är en av de underliggande teknikerna bakom de flesta Java-databasåtkomst (inklusive JPA-leverantörer).

Ett av problemen med traditionella JDBC-appar är att du ofta kan ha en skitkod där massor av kartläggning mellan datasätt och objekt inträffar, logik blandas med SQL, etc.

JPA är en standard för Object Relational Mapping. Detta är en teknik som låter dig kartlägga mellan objekt i kod- och databastabeller. Detta kan "dölja" SQL från utvecklaren så att allt de hanterar är Java-klasser, och leverantören låter dig spara dem och ladda dem på magiskt sätt. Oftast kan XML-mappningsfiler eller anteckningar på brev och inställningar användas för att berätta för JPA-leverantören vilka fält på din objektkarta till vilka fält i DB. Den mest kända JPA-leverantören är Hibernate, så det är ett bra ställe att börja med konkreta exempel.

Andra exempel inkluderar OpenJPA, toplink, etc.