JDBC vs. Slaapstand
Java Database Connectivity (ook bekend als JDBC) is een API die speciaal is gebouwd voor de Java-programmeertaal. Het definieert hoe een cliënt toegang heeft tot een database door middel van methoden voor het opvragen en bijwerken van gegevens in een database. Het is meer specifiek gericht op relationele databases. Het werd voor het eerst op de markt geïntroduceerd als onderdeel van het Java 2-platform, Standard Edition, versie 1.1 (of J2SE). Het is samengebundeld met een referentie-implementatie JDBC naar ODBC brug, waardoor verbindingen met de API mogelijk zijn naar elke ODBC toegankelijke gegevensbron in de JVM-hostomgeving.
Slaapstand is een op objecten georiënteerde kaartbibliotheek (of ORM-bibliotheek) die specifiek is gebouwd voor de Java-taal. Het biedt een raamwerk voor het toewijzen van een objectgeoriënteerd domeindocument aan een traditionele relationele database. Het lost ook objectrelationele impedantie-mismatch-problemen op - dat zijn problemen waarbij een relationeel databasebeheersysteem (of RDBMS) wordt gebruikt door een programma dat is geschreven in een objectgeoriënteerde programmeertaal of stijl. Het volbrengt dit door directe aan persistentie gerelateerde databasetoegangen te vervangen door hoogstaande behandelingsfuncties. Het is gratis, open source software en wordt gedistribueerd onder de GNU Lesser General Public License.
JDBC werkt door verschillende implementaties te laten bestaan en gebruiken door dezelfde applicatie. Het biedt een mechanisme waarmee de juiste Java-pakketten dynamisch worden geladen en geregistreerd met de JDBC Driver Manager -die wordt gebruikt als een verbindingsfabriek van soorten, waarmee JDBC-verbindingen worden gemaakt. Deze verbindingen ondersteunen het maken en uitvoeren van instructies. Het kunnen updateverklaringen zijn (bijvoorbeeld de SQL's CREATE, INSERT, UPDATE en DELETE). Dit kunnen ook queryopdrachten zijn, zoals SELECT. Een JDBC-verbinding kan ook een beroep doen op opgeslagen procedures - dat wil zeggen, die procedures die zijn opgeslagen in de databasegegevensbibliotheek.
Hibernate functioneert in de eerste plaats om te mappen van Java-klassen naar databasetabellen, en van Java-gegevenstypen naar SQL-gegevenstypen. Het biedt ook mogelijkheden voor gegevensvragen en opvraagmogelijkheden. Het is in staat om SQL-aanroepen te genereren, waardoor de ontwikkelaar wordt ontlast van handmatige resultaatsetverwerking en objectconversie. Hierdoor blijft de toepassing draagbaar voor alle SQL-databases die door de bibliotheek worden ondersteund. Het wijst Java-klassen toe aan de databasetabellen door een XML-bestand te configureren (waarbij Hibernate skeletbroncode voor de persistentieklassen kan genereren) of door Java-annotatie te gebruiken (waardoor de eerdere actie niet kan slagen). Hibernate ondersteunt ook het toewijzen van aangepaste waardetypes, wat drie specifieke scenario's mogelijk maakt: het overschrijven van het standaard SQL-type, gekozen door Hibernate bij het toewijzen van een kolom aan een eigenschap; Java Enum toewijzen aan kolommen alsof ze reguliere eigenschappen waren; en het toewijzen van een enkele eigenschap aan meerdere kolommen.
Samenvatting:
1. JDBC is een API die definieert hoe een client toegang kan krijgen tot een database; Hibernate is een ORM-bibliotheek die een raamwerk biedt voor het toewijzen van een objectgericht domeinmodel aan een traditionele relationele database.
2. JDBC staat verschillende implementaties toe die gebruikt worden door dezelfde applicatie; Hibernate-kaarten van Java-klassen naar databasetabellen.