8 Objektrelationale Datenbankanwendungsprogrammierung (S. 317-318) Die Programmierung von Anwendungen auf objektrelationalen Datenbanken kann im Prinzip über die für relationale Datenbanken verwendeten Datenbankzugriffsschnittstellen geschehen. Um jedoch die erweiterten Konstrukte objektrelationaler Datenbanken ausnutzen zu können, sind eine objektorientierte Anwendungsprogrammiersprache wie Java und entsprechende Datenbankzugriffsschnittstellen wie JDBC und SQLJ unerl¨asslich. Im besten Fall ermöglichen diese Schnittstellen eine »Eins-zu-eins«Abbildung zwischen Anwendungs- und Datenbankobjekten und erlauben insbesondere die transparente Verwendung von Datenbankmethoden in der Anwendung. Java ist in Verbindung mit einer objektrelationalen Datenbank vielseitig einsetzbar (siehe Abbildung 8.1). Auf der Clientseite kann sie genutzt werden, um Datenbankanwendungen und Benutzerschnittstellen in Java zu implementieren. Im Datenbankserver können benutzerdefinierte Routinen und Datentypen in Java implementiert werden (siehe auch Kapitel 10). In einer dreischichtigen Middleware-Architektur können wiederverwendbare Java-Komponenten (JavaBeans) auf dem Anwendungsserver programmiert werden. Mit JDBC und SQLJ gibt es zwei Java-SQL-Schnittstellen, welche die Anbindung von JavaProgrammen an SQL-Datenbanken unterst ützen. JDBC ist eine Entwicklung von Sun, die als Teil von Java frei verf ügbar ist. SQLJ ist Teil des SQL-Standards. Dieses Kapitel stellt diese beiden Schnittstellen vor und geht vor allem auf die Verwendung der objektrelationalen Erweiterungen in Java ein. Auf die Verwendung von SQLJ für die Erweiterung einer SQL-Datenbank mit Java-Methoden und Java-Klassen werden wir in Kapitel 10 eingehen. 8.1 JDBC: Dynamische SQL-Einbettung in Java Die dynamische Einbettung von SQL-Anweisungen in Java-Programmen erfolgt mit Hilfe von JDBC, die eine Datenbankzugriffsschnittstelle bietet, über die SQL-Anweisungen als Zeichenketten mittels vordefinierter Funktionen an die Datenbank geschickt werden. Ein Java-Programm, das JDBCAnweisungen direkt zum Zugriff auf die Datenbank nutzt, bezeichnen wir im Folgenden als JDBCProgramm. Beispiel 8.1 skizziert die Struktur eines JDBC-Programms, das eine Datenbankverbindung aufbaut, Daten aus einer Datenbank liest und diese Daten auf dem Bildschirm ausgibt. Konkret werden die Kundennummern und Namen aller Kunden ausgegeben. Aus Gründen der Übersicht vernachlässigen wir hier die Ausnahmebehandlung.