Es werden einige Aspekte der Nutzung von JDBC am Beispiel der Klasse ``MainFrame'' der Demoanwendung vorgestellt. Die Kenntnis des Handbuches wird im weiteren vorausgesetzt.
Die Demoanwendung unterstüzt nur einen kleinen Ausschnitt der geplanten Gesamtfunktionalität des Redaktionssystems:
Die Vergabe von
erfolgt dabei automatisch über den Aufruf der entsprechenden PL/SQL-Prozedur, welche die referenzielle Integrität gewährleistet. Der Redakteur hat keinen Einfluss auf die Vergabe dieser beiden Attribute.
Als zusätzliches ``Gimmick'' ist ein einfaches SQL-Interface implementiert, welches das Absetzen von SQL-Anfragen ermöglicht. Dieses Tool hat sich während der Entwicklungsphase bewährt; etwas ähnliches könnte aber auch im eigentlichen Redaktionssystem für Administratoren nützliche Dienste erweisen, falls schnell der Inhalt der DB kontrolliert werden soll. Den normalen Redakteuren sollte dies jedoch nicht zugänglich sein. Damit der Prototyp nicht unnötig aufgebläht wird und übersichtlich bleibt, werden alle Fehlermeldungen im Ausgabefenster des SQL-Tools angezeigt. (Gut, nicht der beste Stil, aber auch aus schlechten Beispielen kann man lernen.)
Literaturhinweis:
Das SQL-Tool wurde unter Verwendung von Code aus ``Java Examples in a Nutshell'' von David Flanagan (erschienen im O'Reilly-Verlag) erstellt. Dieses Buch ist ausserdem eine hervorragende Quelle für weiteren Java-Beispielcode.
JDBC-Beispiele finden sich z. B. auch im OTN oder in den offiziellen Oracle Dokumentationen.
Allgemeines Schema bei JDBC:
Es ist jeweils angegeben, mit welchen Methodenaufrufe der Klasse ``MainFrame'' die jeweiligen Aktionen durchgeführt werden.
Beispiel in der Methode ``jToggleButtonVerbindung_actionPerformed()''
Beispiel in der Methode ``doConnect()'';
wird von ``jToggleButtonVerbindung_actionPerformed()'' aufgerufen
Beispiel in der Methode ``jButtonArtikelSpeichern_actionPerformed()''
Beispiele in der Methode ``jButtonArtikelSpeichern_actionPerformed()'' und ``jButtonArtikellisteAktualisieren_actionPerformed()''
Beispiel in der Methode ``deConnect()'';
wird von ``jToggleButtonVerbindung_actionPerformed()'' aufgerufen
Wichtige Klassen und Interfaces aus java.sql.*
Wenn man sich mit diesen Klassen vertraut gemacht hat, sind die wichtigsten Grundlagen bekannt.
Einfügen von Datensätzen mit einem PL/SQL Procedurce Call In der Datenbank sind PL/SQL-Prozeduren für das Einfügen von Datensätzen angelgt. Diese sollen benutzt werden, damit die Intergrität der Daten gewährleistet wird. Somit ist der kritische Teil der Anwendungslogik vom Redaktionssystem gekapselt.
Es gibt zwei verschiedene unterstützte Syntaxe, wenn gespeicherte PL/SQL-Prozeduren (oder Funktionen) mit JDBC aufgerufen werden:
Beide Möglichkeiten sind in der Oracle Dokumentation ausführlich
beschrieben
(``Oracle9i Application Developer's Guide -
Fundamentals'').
In der Demoanwendung wird in der Methode
``jButtonArtikelSpeichern_
actionPerformed'' die PL/SQL-Prozedur
``proc_insert_artikel_inpara'' (vgl. Abschnitt Prozeduren)
verwendet, um die Artikel abzuspeichern. Diese PL/SQL-Prozedur hat
keine Rückgabeparameter (``inout'' oder ``out'') und ist einfacher zu
handhaben, als Prozeduren mit Rückgabewerten, weil kein ``Cursor''
verwendet werden muss. Für das zu erstellende Redaktionssystem wird
auf die Prozedur ``proc_insert_artikel'' verwiesen; sie gibt die
automatisch vom System erzeugten Werte für ``Id'' und ``Version'' zurück.