Wat is het verschil tussen JPA en JDBC?


Antwoord 1:

JDBC is een standaardtool voor het rechtstreeks verbinden met een database en het uitvoeren van SQL, bijvoorbeeld selecteren * uit TableName, enz. Gegevenssets kunnen worden geretourneerd die de gebruiker in zijn app kan verwerken, en hij kan alle gebruikelijke dingen doen zoals bijwerken, verwijderen , procedures invoegen, enz. Het is een van de onderliggende technologieën achter de meeste Java DBA (inclusief JPA-providers).

Een groot probleem met traditionele JDBC-apps is dat de gebruiker vaak wat waardeloze code kan hebben waarbij logica wordt vermengd met SQL, veel mapping tussen gegevenssets en objecten plaatsvindt, enz.

JPA is een officieel hulpmiddel voor Object Relational Mapping. JPA is een technologie waarmee gebruikers tussen objecten in code- en databasetabellen kunnen mappen. JPA kan de SQL voor de ontwikkelaar "verbergen" zodat alles wat ze binnen Java-klassen behandelen, en de provider u toestaat om ze op te slaan en op afstand te laden. Meestal kunnen XML-toewijzingsbestanden of annotaties op setters en getters worden gebruikt om de JPA-provider hiervan op de hoogte te stellen. welke velden op gebruikersobject toewijzen aan welke velden in de DB. hibernate is de meest populaire JPA-provider.

enkele andere voorbeelden inclusief OpenJPA, toplink, etc.

Slaapstand en andere populaire providers voor JPA schrijven SQL en gebruiken JDBC om van en naar de DB te lezen en te schrijven.

Dank je.

als je mijn antwoord leuk vindt, stem het dan over.


Antwoord 2:

Het zou een beetje ingewikkeld zijn om het verschil tussen beide te begrijpen als je een beginner bent. Ik denk dat je eerst moet beginnen met het begrijpen van het verschil tussen JDBC en Hibernate. Ik hoop dat je weet wat JDBC is, nog steeds als een korte beschrijving: JDBC staat voor Java Database Connectivity. JDBC is een Java API om verbinding te maken en de query uit te voeren met de DB. Het biedt stuurprogramma's om verbinding te maken met de DB. U kunt de JDBC API gebruiken om toegang te krijgen tot tabelgegevens die zijn opgeslagen in elke relationele database. Met behulp van JDBC API kunnen we gegevens uit de database opslaan, bijwerken, verwijderen en ophalen.

Wat is Hibernate? Het is een raamwerk in tegenstelling tot JDBC, u moet de Hibernate-bibliotheken importeren voordat u het gebruikt, terwijl JDBC deel uitmaakt van J2SE zelf. Hibernate doet hetzelfde waarvoor JDBC is ontwikkeld, maar u kunt zeggen dat Hibernate een voorloper is van JDBC. Hibernate vereenvoudigt de ontwikkeling van de Java-toepassing voor interactie met de database. Het is een ORM-tool, wat betekent dat het de Java-objecten in kaart brengt met de DB-tabellen. Een Java-klasse kan een tabel in DB vertegenwoordigen. Als u bijvoorbeeld de tabel "emp_26" als Werknemersklasse in Hibernate hebt toegewezen, zou u een eenvoudige objectgeoriënteerde zoekopdracht schrijven om alle werknemers uit de tabel empl_26 op te halen: "van Werknemer" // in Slaapstand "selecteer * van emp_26" // in JDBC.

Er zijn heel veel functies die Hibernate biedt, zoals cache, associatie-mapping, inheritance-mapping, HQL, paginering en nog veel meer die niet beschikbaar zijn in JDBC.

Komt naar JPA, het is een specificatie, het is een set klassen en interfaces. JPA heeft een tool nodig om het te laten implementeren en die tool kan Hibernate zijn. Door JPA te implementeren, kunt u hetzelfde doen wat Hibernate doet, maar in het formaat van JPA. Als JPA een dans is, dan is Hibernate of een ander hulpmiddel vereist om het een danspodium te bieden. Het betekent trouwens niet dat Hibernate niet kan dansen zonder JPA, Hibernate heeft ook zijn eigen dans.


Antwoord 3:

JDBC is een standaard voor het rechtstreeks verbinden met een DB en het uitvoeren van SQL - bijvoorbeeld SELECT * VAN GEBRUIKERS, enz. Gegevenssets kunnen worden geretourneerd die u in uw app kunt verwerken en u kunt alle gebruikelijke dingen doen, zoals INVOEGEN, VERWIJDEREN, voer opgeslagen procedures uit, enz. Het is een van de onderliggende technologieën achter de meeste Java-databasetoegang (inclusief JPA-providers).

Een van de problemen met traditionele JDBC-apps is dat je vaak wat waardeloze code hebt waar veel mapping tussen gegevenssets en objecten plaatsvindt, logica wordt gemengd met SQL, enz.

JPA is een standaard voor Object Relational Mapping. Dit is een technologie waarmee u tussen objecten in code en databasetabellen kunt mappen. Dit kan de SQL voor de ontwikkelaar "verbergen" zodat ze alleen Java-klassen behandelen en de provider u toestaat ze op te slaan en ze op magische wijze te laden. Meestal kunnen XML-toewijzingsbestanden of annotaties op getters en setters worden gebruikt om de JPA-provider te vertellen welke velden op uw object toewijzen aan welke velden in de DB. De meest bekende JPA-provider is Hibernate, dus het is een goede plek om te beginnen met concrete voorbeelden.

Andere voorbeelden zijn OpenJPA, toplink, enz.