JDBC: Bessere Performance durch kluge Treiberwahl

JDBC-Treiber kommen in vier unterschiedlichen Varianten:

  • Typ 1: Die Java-API für Datenbankkonnektivität ist ODBC-kompatibel. Soll eine Datenbank mit ODBC-Unterstützung mit Java-Code verknüpft werden, kann ein JDBC-Treiber vom Typ 1 eine Brücke zwischen ODBC und JDBC bilden. Dieser Treiber wurde speziell entworfen, um die Verwendung der JDBC zu fördern. Denn er machte diese kompatibel zur Installationsbasis, also zu bereits auf dem Markt befindlichen ODBC-Datenbanken.
  • Typ 2: Diese Treiber ähneln prinzipiell den Treibern vom Typ 1. Allerdings dienen sie als Brücke zu bestimmten Datenbankschnittstellen statt zu einem Standard. Dieser Typ wurde entwickelt, um das Java Native Interface (JNI) zu nutzen. Ein Treiber vom Typ 2 wandelt mithilfe von JNI-Datenbankaufrufe in für die Datenbank geeignete Funktionsaufrufe um.
  • Typ 3: Diese Treiber sind komplexer aufgebaut als Typ 1 oder Typ 2. Sie handhaben Aufrufe der API, indem sie diese in generische Datenbankaufrufe umwandeln und sie anschließend, unter Verwendung des Protokolls der Datenbank, wieder in Aufrufe zurückverwandeln. Sie erscheinen vielleicht ein wenig komplex, doch vom Ansatz her sind sie am geradlinigsten.
  • Typ 4: Bei diesem Typus handelt es sich um spezifische Java-Treiber, die eigens dafür geschrieben wurden, die JDBC mit bestimmten Datenbanken einzusetzen. Die Verfügbarkeit dieser Treiber nimmt natürlich im Lauf der Zeit zu. Es sind keine Aufrufe erforderlich. Das Verfahren besteht vielmehr in einer direkten Kommunikation mit der Datenbank über das jeweils geeignete Protokoll.

Grundlegende Auswahlkriterien

Im Allgemeinen sind die Treiber vom Typ 1 und Typ 3 generisch, während die vom Typ 2 und Typ 4 datenbankspezifisch funktionieren. Diese Auswahlkriterien allein genügen jedoch oft nicht für eine endgültige Entscheidung. Hier also noch einige weitere Charakteristika:

  • Typ 1: Treiber vom Typ 1 kommen selten zum Einsatz. Ausnahme: Es wird bereits eine Datenbank mit Unterstützung für die ODBC, jedoch nicht für die JDBC verwendet. Im Java SDK ist zwar ein generischer JDBC-ODBC-Brückentreiber enthalten, doch der veranschaulicht nur die Schwachstelle dieses Typs: die geringe Geschwindigkeit. Es gibt kaum Gründe dafür, einen JDBC-Treiber vom Typ 1 zu benutzen, wenn ein anderer Typ zur Verfügung steht.
  • Typ 2: Derzeit mangelt es an Treibern vom Typ 2. Schon deshalb dürfte die Wahl vermutlich nicht auf diesen Typ fallen. Bei eigenständigen Anwendungen und Server-Anwendungen können diese Treiber jedoch die richtige Lösung anbieten. Zudem erfordern sie gewöhnlich weniger technische Kenntnisse der Funktionsweise der Zieldatendank.
  • Typ 3: Treiber vom Typ 3 sind Treibern vom Typ 1 eindeutig überlegen. Es kommt mitunter vor, dass für eine bestimmte Datenbank einfach keine Treiber vom Typ 2 oder vom Typ 4 verfügbar sind. Microsoft Access liefert ein Beispiel hierfür. Wenn kein Treiber vom Typ 4 existiert, bleibt die Wahl zwischen einem Treiber vom Typ 2 oder einem vom Typ 3. Der Typ 3 bietet dann mehr Portierungsmöglichkeiten, sofern dies von Belang ist.
  • Typ 4: Typ-4-Treiber sind häufig die effizienteste Alternative. Sie stellen eine direkte Verbindung her, statt Aufrufe umzuleiten. Falls es für die konkret verwendete Datenbank einen Treiber vom Typ 4 gibt, sollte die Wahl generell auch auf diesen fallen. Ausnahmen hiervon bilden eigenständige Anwendungen und Server-Anwendungen, für die die protokollspezifische Beschaffenheit von Typ 4 keine Vorteile bringt. Trotzdem ist die Geschwindigkeit eines Typ-4-Treibers (ebenso wie bei Typ 2) sehr hoch. Denn es gibt nur einen Umwandlungsschritt.

Weitere Informationen zu den JDBC-Treibern bietet die Sun-Website.

Themenseiten: Anwendungsentwicklung, Big Data, Datenbank, Software

Fanden Sie diesen Artikel nützlich?
Content Loading ...
Whitepaper

Artikel empfehlen:

Neueste Kommentare 

Noch keine Kommentare zu JDBC: Bessere Performance durch kluge Treiberwahl

Kommentar hinzufügen

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *