Quina diferència hi ha entre JPA i JDBC?


Resposta 1:

JDBC és una eina estàndard per connectar-se directament a una base de dades i executar SQL contra ella, per exemple seleccionar * de TableName, etc. Es poden retornar conjunts de dades que l'usuari pot gestionar en la seva aplicació i pot fer totes les coses habituals com actualitzar, suprimir , inserir procediments, etc. És una de les tecnologies subjacents de la majoria de DBA de Java (inclosos els proveïdors JPA).

Un dels principals problemes amb les aplicacions JDBC tradicionals és que l’usuari sovint pot tenir un codi de porqueria on es barreja la lògica amb SQL, es produeixen molts mapatges entre conjunts de dades i objectes, etc.

JPA és una eina oficial de mapeig relacional d'objectes. JPA és una tecnologia que permet a l'usuari fer un mapa entre objectes de codis i taules de bases de dades. JPA pot "ocultar" l'SQL al desenvolupador de manera que tot el que tinguin a les classes Java i el proveïdor et permeti guardar-les i carregar-les de forma remota. Majoritàriament, es poden fer servir mapes de fitxers X o anotacions en reguladors i getters per avisar al proveïdor JPA. quins camps al mapa d'objectes de l'usuari a quins camps al DB. hibernate és el proveïdor de serveis JPA més popular.

alguns altres exemples inclosos OpenJPA, toplink, etc.

Hibernar i altres proveïdors populars per a JPA escriure SQL i utilitzar JDBC per llegir i escriure des i cap al DB.

Gràcies.

si t'agrada la meva resposta, vota-la.


Resposta 2:

Seria poc complex comprendre la diferència entre tots dos si sou principiants. Crec que primer heu de començar entenent la diferència entre JDBC i Hibernate. Espero saber què és JDBC, encara com a descripció ràpida: JDBC significa Connectivitat de bases de dades Java. JDBC és una API Java per connectar i executar la consulta amb el db. Proporciona controladors per connectar-se amb el db. Podeu utilitzar l'API JDBC per accedir a dades tabulars emmagatzemades en qualsevol base de dades relacional. Amb l'ajuda de l'API JDBC, podem desar, actualitzar, eliminar i obtenir dades de la base de dades.

Ara què és Hibernate? És un marc a diferència de JDBC, haureu d’importar les biblioteques Hibernate abans d’utilitzar-lo, mentre que JDBC forma part de la mateixa J2SE. Hibernate fa el mateix per al que està desenvolupat JDBC, però es pot dir que Hibernate és un nivell avançat de JDBC. Hibernate simplifica el desenvolupament de l’aplicació Java per interactuar amb la base de dades. És una eina ORM, vol dir que mapeja els objectes java amb les taules db. Una classe java pot representar una taula en db. Per exemple, si mapés la taula "emp_26" com a classe d'empleats a Hibernate, escriuria una consulta senzilla orientada a objectes per cercar tots els empleats de la taula empl_26: "des de l'empleat" // en Hibernat "selecciona * de emp_26" // en JDBC.

Hi ha moltes funcions que Hibernate ofereix, com ara la memòria cau, l'associació, el mapa d'herències, el HQL, la paginació, moltes més que no estan disponibles a JDBC.

Es tracta d'una especificació, és un conjunt de classes i interfícies. JPA necessita una eina per implementar-la i pot ser hibernació. En implementar JPA, podeu fer el mateix que fa Hibernate, però en el format de JPA. Si JPA és una dansa, Hibernate o alguna altra eina és necessària per proporcionar-li un escenari de ball. Per cert, no vol dir que Hibernate no pugui ballar sense JPA, Hibernate té el seu propi ball.


Resposta 3:

JDBC és un estàndard per connectar-se directament a una base de dades i executar SQL en contra. executar procediments emmagatzemats, etc. És una de les tecnologies subjacents de la majoria de l'accés a bases de dades Java (inclosos els proveïdors JPA).

Un dels problemes amb les aplicacions tradicionals de JDBC és que sovint podeu tenir algun codi de porcelleria on es produeixen molts mapes entre conjunts de dades i objectes, la lògica es barreja amb SQL, etc.

JPA és un estàndard per al mapatge relacional d'objectes. Aquesta és una tecnologia que us permet fer un mapa entre objectes de codi i taula de bases de dades. Això pot "ocultar" l'SQL al desenvolupador de manera que tot el que tracten són classes de Java i el proveïdor permet guardar-les i carregar-les màgicament. Principalment, es poden utilitzar fitxers de mapatge XML o anotacions en getters i setters per indicar al proveïdor JPA quins camps al mapa d'objectes fins a quins camps del DB. El proveïdor de JPA més famós és Hibernate, per la qual cosa és un bon lloc per iniciar exemples concrets.

Altres exemples són OpenJPA, toplink, etc.