Hva er forskjellen mellom JPA og JDBC?


Svar 1:

JDBC er et standardverktøy for å koble til en database direkte og kjøre SQL mot den, for eksempel velg * fra TableName, etc. Datasett kan returneres som brukeren kan håndtere i appen sin, og han kan gjøre alle de vanlige tingene som å oppdatere, slette , sett inn prosedyrer, etc. Det er en av de underliggende teknologiene bak de fleste Java DBA (inkludert JPA-leverandører).

Et hovedspørsmål med tradisjonelle JDBC-apper er at bruker ofte kan ha noe crappy-kode der logikk er blandet med SQL, mye kartlegging mellom datasett og objekter forekommer, etc.

JPA er et offisielt verktøy for Object Relational Mapping. JPA er en teknologi som lar brukeren kartlegge mellom objekter i kode- og databasetabeller. JPA kan "skjule" SQL fra utvikleren slik at alt de handler innen Java-klasser, og leverandøren lar deg lagre dem og laste dem eksternt. Det meste kan XML-kartleggingsfiler eller merknader på setters og getters brukes til å fortelle JPA-leverandøren. hvilke felt på brukerobjektet kart over hvilke felt i DB. dvalemodus er den mest populære JPA-leverandøren.

noen andre eksempler, inkludert OpenJPA, toplink, etc.

Dvalemodus og andre populære leverandører for JPA skriver SQL og bruker JDBC til å lese og skrive fra og til DB.

Takk skal du ha.

Hvis du liker svaret mitt, så gå med på det.


Svar 2:

Det vil være lite komplisert å forstå forskjellen på begge deler hvis du er nybegynner. Jeg mener at du bør starte med å forstå forskjellen mellom JDBC og Hibernate først. Jeg håper du vet hva JDBC er, fremdeles som en breifbeskrivelse: JDBC står for Java Database Connectivity. JDBC er et Java API for å koble til og utføre spørringen med db. Det gir drivere å koble seg til db. Du kan bruke JDBC API for å få tilgang til tabelldata som er lagret i hvilken som helst relasjonsdatabase. Ved hjelp av JDBC API kan vi lagre, oppdatere, slette og hente data fra databasen.

Hva er Dvale? Det er et rammeverk i motsetning til JDBC, du må importere dvalebibliotekene før du bruker det, mens JDBC er en del av J2SE selv. Hibernate gjør det samme som JDBC er utviklet for, men du kan si Hibernate er et fremskrittnivå for JDBC. Dvale forenkler utviklingen av Java-applikasjoner for å samhandle med databasen. Det er et ORM-verktøy, betyr at det kartlegger java-objektene med db-tabellene. En java-klasse kan representere et bord i db. Hvis du for eksempel kartla "emp_26" -tabellen som medarbeiderklasse i dvalemodus, ville du skrevet et enkelt objektorientert spørsmål for å hente alle ansatte fra empl_26-tabellen: "fra Ansatt" // i dvalemodus "velg * fra emp_26" // i JDBC.

Det er utrolig mange funksjoner som dvalemodus gir, som cache, tilknytningskartlegging, arvingskartlegging, HQL, paginering og mange flere som ikke er tilgjengelige i JDBC.

Kommer til JPA, er det en spesifikasjon, det er et sett med klasser og grensesnitt. JPA trenger et verktøy for å få det implementert, og det verktøyet kan være dvalemodus. Ved å implementere JPA, kan du gjøre det samme som Hibernate gjør, men i formatet til JPA. Hvis JPA er en dans, er det nødvendig med Hibernate eller et annet verktøy for å gi den en dansetrinn. For øvrig betyr det ikke at Hibernate ikke kan danse uten JPA, Hibernate har fått sin egen dans også.


Svar 3:

JDBC er en standard for å koble til en DB direkte og kjøre SQL mot den - f.eks. VELG * FRA BRUKERE, etc. Datasett kan returneres som du kan håndtere i appen din, og du kan gjøre alle de vanlige tingene som INSERT, DELETE, kjøre lagrede prosedyrer, osv. Det er en av de underliggende teknologiene bak de fleste Java-databasetilganger (inkludert JPA-leverandører).

Et av problemene med tradisjonelle JDBC-apper er at du ofte kan ha noe crappy-kode der det forekommer mye kartlegging mellom datasett og objekter, logikk er blandet med SQL, etc.

JPA er en standard for Object Relational Mapping. Dette er en teknologi som lar deg kartlegge mellom objekter i kode- og databasetabeller. Dette kan "skjule" SQL fra utvikleren, slik at alt de har å gjøre med er Java-klasser, og leverandøren lar deg lagre dem og laste dem på magisk vis. Stort sett kan XML-kartleggingsfiler eller merknader på getters og setters brukes til å fortelle JPA-leverandøren hvilke felt på objektkartet ditt til hvilke felt i DB. Den mest kjente JPA-leverandøren er Hibernate, så det er et bra sted å starte med konkrete eksempler.

Andre eksempler inkluderer OpenJPA, topplink, etc.