Hvad er forskellen mellem JPA og JDBC?


Svar 1:

JDBC er et standardværktøj til at oprette forbindelse til en database direkte og køre SQL imod den, for eksempel vælge * fra Tabelnavn osv. Datasæt kan returneres, som brugeren kan håndtere i sin app, og han kan gøre alle de sædvanlige ting som opdatering, sletning , indsæt procedurer osv. Det er en af ​​de underliggende teknologier bag de fleste Java DBA (inklusive JPA-udbydere).

Et vigtigt problem med traditionelle JDBC-apps er, at brugeren ofte kan have nogen crappy-kode, hvor logik er blandet med SQL, masser af kortlægning mellem datasæt og objekter forekommer osv.

JPA er et officielt værktøj til Object Relational Mapping. JPA er en teknologi, der giver brugeren mulighed for at kortlægge mellem objekter i kode- og databasetabeller. JPA kan "skjule" SQL fra udvikleren, så alle de handler inden for Java-klasser, og udbyderen giver dig mulighed for at gemme dem og indlæse dem eksternt. Oftest kan XML-kortlægning af filer eller kommentarer på sættere og getters bruges til at fortælle JPA-udbyderen. hvilke felter på brugerobjektkortet, hvilke felter i DB. dvaletilstand er den mest populære JPA-udbyder.

nogle andre eksempler, herunder OpenJPA, toplink osv.

Dvaletilstand og andre populære udbydere til JPA skriver SQL og brug JDBC til at læse og skrive fra og til DB.

Tak skal du have.

Hvis du kan lide mit svar, så skriv det op.


Svar 2:

Det ville være lidt kompliceret at forstå forskellen bw begge, hvis du er en nybegynder. Jeg synes, du skal starte med at forstå forskellen mellem JDBC og Dvale først. Jeg håber, du ved, hvad JDBC er, stadig som en breifbeskrivelse: JDBC står for Java Database Connectivity. JDBC er et Java API til at forbinde og udføre forespørgslen med db. Det giver drivere at oprette forbindelse til db. Du kan bruge JDBC API til at få adgang til tabeldata, der er gemt i enhver relationel database. Ved hjælp af JDBC API kan vi gemme, opdatere, slette og hente data fra databasen.

Hvad er dvaletilstand nu? Det er en ramme, i modsætning til JDBC, u har at importere dvaletidsbibliotekerne, før du bruger det, mens JDBC er en del af J2SE selv. Dvaletilstand gør det samme, som JDBC er udviklet til, men du kan sige Hibernate er et forskudsniveau for JDBC. Dvaletil forenkler udviklingen af ​​Java-applikationer til at interagere med databasen. Det er et ORM-værktøj, det betyder, at det kortlægger java-objekter med db-tabellerne. En java-klasse kan repræsentere en tabel i db. Hvis du for eksempel kortlagede "emp_26" -tabellen som medarbejderklasse i dvaletilstand, ville du skrive en simpel objektorienteret forespørgsel for at hente alle ansatte fra empl_26-tabellen: "fra Medarbejder" // i Dvale "vælg * fra emp_26" // i JDBC.

Der er en hel masse funktioner, som Dvale leverer som cache, tilknytningskortlægning, arvekortlægning, HQL, pagination og mange flere, der ikke er tilgængelige i JDBC.

Når du kommer til JPA, er det en specifikation, det er et sæt klasser og grænseflader. JPA har brug for et værktøj for at få det implementeret, og dette værktøj kan være i dvale. Ved at implementere JPA kan du gøre det samme, som Hibernate gør, men i formatet af JPA. Hvis JPA er en dans, er Hibernate eller et andet værktøj påkrævet for at give den en dansetrin. Det betyder i øvrigt ikke, at Hibernate ikke kan danse uden JPA, Hibernate har også sin egen dans.


Svar 3:

JDBC er en standard til at oprette forbindelse til en DB direkte og køre SQL imod den - f.eks. VÆLG * FRA BRUGERE osv. Datasæt kan returneres, som du kan håndtere i din app, og du kan gøre alle de sædvanlige ting som INSERT, DELETE, køre lagrede procedurer osv. Det er en af ​​de underliggende teknologier bag de fleste Java-databaseadgang (inklusive JPA-udbydere).

Et af problemerne med traditionelle JDBC-apps er, at du ofte kan have noget crappy-kode, hvor der forekommer masser af kortlægning mellem datasæt og objekter, logik blandes med SQL osv.

JPA er en standard for Object Relational Mapping. Dette er en teknologi, der giver dig mulighed for at kortlægge mellem objekter i kode- og databasetabeller. Dette kan "skjule" SQL for udvikleren, så alt, hvad de beskæftiger sig med, er Java-klasser, og udbyderen giver dig mulighed for at gemme dem og indlæse dem på magisk vis. Oftest kan XML-kortlægning af filer eller annotationer på getters og setters bruges til at fortælle JPA-udbyderen, hvilke felter på dit objektkort, hvilke felter i DB. Den mest berømte JPA-udbyder er Hibernate, så det er et godt sted at starte med konkrete eksempler.

Andre eksempler inkluderer OpenJPA, toplink osv.