datenbanken ohne sQL

Werbung
W e b d e s i g n | Rapid
Java mit XDEV 3
Datenbanken
ohne SQL
In Teil 2 der Rapid-Java-Serie erfahren Sie, wie einfach Sie mit XDEV 3 Datenbankanwendungen völlig
ohne Java und SQL-Know-how erstellen können.
X
DEV 3 ist die erste professionelle JavaEntwicklungsumgebung für Rapid Application Development (RAD). Die IDE besticht durch eine einfache Arbeitsweise, die
man von Java bislang nicht für möglich gehalten hat. Mit XDEV 3 lassen sich sowohl
Web-Anwendungen (Rich Internet Applications) als auch klassische Desktop-Applikationen entwickeln, welche automatisch
unter Windows, Linux und auf dem Mac
lauffähig sind. XDEV 3 ist für Windows,
Linux und Mac OS-X frei verfügbar. Die
aktuelle Version sowie die neuesten Up-
Datenbank-Tabellen lassen sich als virtuelle
Tabellen importieren, die das Abfrageergebnis
aufnehmen können.
46
dates stehen Ihnen unter der Webadresse
www.xdev-software.de zur Verfügung.
Im ersten Teil haben wir uns mit der Umsetzung grafischer Java-Oberflächen beschäftigt. Im zweiten Teil dreht sich alles um die
Anbindung von Datenbanken und wie man
Daten auf den Bildschirm bringt. Wir empfehlen Ihnen den folgenden Workshop Schritt
für Schritt mitzumachen, denn Sie werden
ein Highlight nach dem anderen und JavaEntwicklung erstmals in beeindruckender
Einfachheit erleben. Die folgenden Beispiele
hätten bis vor Kurzem nur erfahrene JavaProgrammierer umsetzen können. Mit XDEV
3 geht das alles jetzt per Drag & Drop.
Die Anbindung von Datenbanken ist mit
XDEV 3 simpel. Wer bereits Erfahrungen mit
Tools wie Microsoft Access, FoxPro, Filemaker, Oracle Forms etc. besitzt, wird auch mit
XDEV 3 auf Anhieb zurechtkommen. Denn
die Arbeitsweise ist verblüffend ähnlich.
XDEV 3 unterstützt alle wichtigen Datenbanken, unter anderem Access, DB2,
Oracle, MS SQL-Server, MySQL und
PostgreSQL. Für die folgenden Beispiele
verwenden wir jedoch die mitgelieferte
HSQL-Testdatenbank, um einen kleinen
Stammdaten-Editor für eine Kfz-Verwaltung
aufzubauen. HSQLDB ist eine freie JavaDatenbank-Engine, die auch in OpenOffice
Verwendung findet. Darüber hinaus unterstützt XDEV 3 alle wichtigen Datenbanken
wie Access, DB2 oder Informix.
Datenbanken anbinden
Nachdem Sie XDEV 3 installiert und gestartet haben, legen Sie jeweils über das Menü
Datei ein neues Projekt, danach ein neues
Fenster start im Ordner Fenster und dann
eine neue Datenquelle an. Nennen Sie
diese im folgenden Dialog kfzDB, wählen Sie den Ordner Datenquellen und das
Plugin HSQL 2 JDBC aus und klicken Sie
auf OK. Wählen Sie im folgenden Verbindungs-Assistenten bei Datenbankname die
mitgelieferte Beispieldatenbank kfz aus,
und klicken Sie auf Aktualisieren, um die
Verbindung zur Datenbank herzustellen.
Anschließend werden die Tabellen und hinterlegten Entity-Relations angezeigt. Falls
vorhanden, werden auch Views und Stored
Procedures hier angezeigt. Der Javacode
für die Datenquelle wird im Hintergrund
automatisch generiert. Klicken Sie jetzt auf
Speichern.
Datenbank und GUI
Ziehen Sie nun alle Tabellen per Drag &
Drop auf den Ordner Virtuelle Tabellen
im Projektmanagement und bestätigen jeweils die CamelCase-Namensanpassung.
Dadurch wird von allen Datenbanktabellen eine Kopie ohne Daten erzeugt, die
als "virtuelle Tabellen" bezeichnet werden.
Eine virtuelle Tabelle bildet in einer Anwendung sozusagen das Gegenstück einer
Datenbanktabelle und dient zur Aufnahme
des Abfrageergebnisses (Resultset). Damit
lassen sich die Daten völlig unkompliziert
zwischen Datenbank und Anwendung
übertragen. Virtuelle Tabellen erfüllen
zudem noch einen weiteren Zweck: Sie
dienen als direkte Datenquelle (Swing Model) für sämtliche Oberflächen-Elemente
0611 internet magazin
Rapid Java mit XDEV 3
Sämtliche Assistenten
und Code-Generatoren
lesen die Relationen aus
dem ER-Diagramm aus.
Die Relationen lassen
sich sowohl importieren
als auch exportieren.
(View). Virtuelle Tabellen bilden somit das
Verbindungsstück (Databinding) zwischen
GUI und Datenbank.
Das Virtuelle-TabellenKonzept befreit den Entwickler vollständig
von JDBC-Programmierung, der Verarbeitung von Resultsets und dem Erzeugen von
Swing Models und Renderer für die unterschiedlichen GUI-Komponenten. Damit
vereinfacht XDEV 3 die Datenbank- und
GUI-Programmierung in Java radikal und
erspart dem Entwickler eine Menge CodierArbeit und Entwicklungszeit.
ER-Diagramm
Importieren Sie nun die Entity-Relations, indem Sie diese einfach per Drag & Drop auf
den Ordner Datenquellen im Projektmanagement ziehen. Klicken Sie den neuen
Eintrag an, um das erzeugte ER-Diagramm
aufzurufen. Das ER-Diagramm zeigt die
Verbindungen (Relationen) zwischen den
Tabellen an. Es dient nicht nur der Dokumentation des Datenmodells, sondern wird
vor allem von verschiedenen Funktionen
und Assistenten zum Auslesen der Relationen benötigt, um sämtliche Abfragen automatisch generieren zu können.
Automatisierte Datenbanken
Virtuelle Tabellen sind bereits standardmäßig mit Abfragelogik ausgestattet, sodass
Sie für einfache Queries keinen SQL-Code
schreiben müssen. Durch Verknüpfen einer
Virtuellen Tabelle mit einem GUI-Element
wird die dazugehörige Datenbanktabelle
automatisch abgefragt und die Daten werden auf der Oberfläche ausgegeben.
Wählen Sie für den ersten Datenbankzugriff das Fenster start an und ziehen Sie
dieses möglichst groß. Um eine skalierbare
internet-magazin.magnus.de
|Webdesign
Statements werden automatisch generiert.
Das Abfrageergebnis wird anschließend in
die virtuelle Tabelle geschrieben. Durch
die Verknüpfung von virtueller Tabelle und
Table werden die Daten automatisch auf
der Oberfläche ausgegeben. Die dafür notwendigen Renderer, Editoren und SwingModel-Wrapper werden von XDEV 3 zur
Verfügung gestellt, sodass man diese nicht
wie üblich selbst programmieren muss.
Automatische Joins
Oberfläche mit Einzelfenster aufzubauen,
vergeben Sie dem Fenster zuerst ein BorderLayout. Klicken Sie dazu in den Eigenschaften bei Layout auf das Pfeil-Symbol
und wählen das BorderLayout aus. Ziehen
Sie nun die Komponente XdevDesktopPane
aus der Palette so in das Fenster, dass dieses
komplett ausgefüllt wird. Fügen Sie jetzt
die Komponente XdevInternalFrame ein,
verbreitern Sie dieses etwas und vergeben
Sie dem InternalFrame über die Eigenschaft
Layout ebenso ein BorderLayout. Ziehen Sie
nun die Komponente XdevTable so in das
InternalFrame, dass es vollständig ausgefüllt
wird. Ziehen Sie jetzt die virtuelle Tabelle
Fahrzeuge aus dem Projektmanagement
auf die Table. Um die Vorschau im Browser
auszuführen, wählen Sie im Menü Ausführen, Startkonfiguration. Klicken Sie im
folgenden Dialog auf Applet, dann auf das
Neu-Symbol, geben Sie bei Name "kfz-Beispiel" ein, wählen Sie die Option Vollbild
an und beenden Sie mit OK. Zum Starten
klicken Sie nun den kleinen Pfeil beim ersten Play-Symbol und dann auf kfz-Beispiel.
Später müssen Sie nur noch auf Play klicken. Die für die Abfrage notwendigen SQL
Da bei relationalen Datenbanken die Daten
in der Regel über mehrere Tabellen verteilt
und mithilfe eines Schlüssels miteinander
verknüpft sind, werden Abfragen einzelner
Tabellen meist nicht ausreichen, wie das
Beispiel zeigt. Aber auch Abfragen über
mehrere Tabellen können direkt von einer
virtuellen Tabelle durchgeführt werden.
Beenden Sie die Vorschau und klicken Sie
die virtuelle Tabelle Fahrzeuge im Projektmanagement an, um diese im Tabellen-Assistenten zu bearbeiten. Klicken Sie in der
zweiten Zeile der XDEV-3-Symbolleiste das
letzte Icon Beziehungen auflösen an. Mit dieser Maßnahme wird die virtuelle Tabelle bei
jeder Spalte, die einen Primärschlüssel (z.B.
MODELL_ID) enthält, um eine Hilfsspalte erweitert. Da die Relationen im ER-Diagramm
dokumentiert sind, kann die virtuelle Tabelle nun alle verknüpften Werte automatisch
hinzujoinen, sodass anstelle von unlesbaren
Primärschlüssel (z.B. MODELL_ID = 110) nur
noch lesbare Werte in der Tabelle erscheinen
(z.B. MODELL = Twingo).
Um auch den noch fehlenden Hersteller mit
anzuzeigen, muss eine weitere Hilfsspalte
manuell eingefügt werden, da Hilfsfelder
nur für direkte Relationen generiert werden
können. Öffnen Sie im Projektmanagement
Die Browser-Vorschau lässt sich mit wenigen Klicks konfigurieren.
47
W e b d e s i g n | Rapid
Java mit XDEV 3
bei der Tabelle Hersteller den Zweig und
ziehen Sie die Spalte MARKE in den Tabellen-Assistenten über die Spalte MODELL_ID
der virtuellen Tabelle Fahrzeuge. Wechseln
Sie zurück zum Fenster und starten Sie die
Anwendung erneut.
Master-Detail-Ansichten
Damit es bei großen Datenbeständen nicht
zu einem Speicherüberlauf kommt, sollte
ein Suchergebnis grundsätzlich eingegrenzt
werden. Eine in der Praxis recht beliebte
Methode sind Master-Detail-Ansichten.
Diese bestehen aus zwei oder mehr GUIKomponenten. In der ersten Komponente
(Master) wird eine Kategorie ausgewählt,
während in einer zweiten Komponente
(Detail) alle zugehörigen Daten angezeigt
werden. Die Konstruktion wird aus einer
1:n-Beziehung zwischen zwei Tabellen
abgeleitet, beispielsweise Hersteller und
Modelle. Mit XDEV 3 lassen sich MasterDetail-Ansichten mit nur wenigen Mausklicks umsetzen. Dazu muss lediglich bei
der Detail-Komponente die dazugehörige
Master-Komponente hinterlegt werden. Die
gesamte Abfrage- und Aktionslogik wird anschließend automatisch generiert.
Beenden Sie die Vorschau und fügen Sie
ein zweites InternalFrame ein. Fügen Sie in
dieses dann eine Table (Master) und daneben eine zweite Table (Detail) ein. Um die
Tabellen mit Daten zu füllen, ziehen Sie die
virtuelle Tabelle Hersteller auf die MasterTable. Ziehen Sie dann die virtuelle Tabelle
Modelle auf die Detail-Table. Legen Sie jetzt
die Master-Detail-Beziehungen fest. Klicken
Sie zuerst die Tabelle Fahrzeuge an, dann in
den Eigenschaften bei Master-Komponente
das Pfeilsymbol und wählen Sie als Master
die Tabelle Modelle. Klicken Sie nun die Tabelle Modelle an, dann in den Eigenschaften
bei Master-Komponente das Pfeilsymbol und
wählen Sie als Master die Tabelle Hersteller
an. Damit können Sie das Beispiel testen.
Unerwünschte Spalten lassen sich im Tabellen-Assistenten ausblenden.
Suchformulare und Filter
Noch genauer und komfortabler lässt sich
eine Abfrage mithilfe eines Suchformulars
48
Beeindruckende Funktionalität bei so geringem Entwicklungsaufwand. So einfach war
Java-Entwicklung noch nie.
eingrenzen. Beenden Sie die Vorschau und
fügen Sie ein drittes InternalFrame ein,
vergrößern Sie dieses auf 400 x 400 Pixel
und vergeben Sie auch diesen über die Eigenschaft Layout ein BorderLayout. Ziehen
Sie nun die virtuelle Tabelle Fahrzeuge in
die Arbeitsfläche, um daraus ein Formular
generieren zu lassen. Wählen Sie im folgenden Assistenten den Button Speichern
ab und klicken Sie auf OK. Nun können
Sie die Table Fahrzeuge mit dem Formular verknüpfen. Klicken Sie dazu die Table
Fahrzeuge an, danach in den Eigenschaften
bei Verbundenes Formular auf das Pfeilsymbol und wählen Sie dann das Formular
an. Durch diese Verknüpfung wird später
ein in der Table selektierter Datensatz automatisch in das Formular übertragen, wo
er editiert werden kann.
Fügen Sie rechts neben den Formular-Buttons
einen weiteren Button ein und benennen
Sie diesen mit Suchen. Um ein MausklickEreignis zu hinterlegen, klicken Sie im gelben Quickinfo-Feld des Buttons auf Ereignisse
und dann auf actionPerformed. Daraufhin
wechselt XDEV 3 in die Code-Ansicht und
generiert den Event-Handler automatisch für
Sie. Der Editor befindet sich standardmäßig
in der Partial-View Ansicht. Diese zeigt immer nur den Code der aktuellen Funktion.
Der restliche, generierte Code bleibt für eine
bessere Übersicht ausgeblendet. Vor allem
Java-Einsteiger behalten dadurch viel leichter die Übersicht. Erfahrene Entwickler können diesen Modus jederzeit abschalten, um
stets Sicht auf den gesamten Code zu haben.
Geben Sie nun die Anweisung formular.
search(„AND“, table); ein, mit der die Formularsuche aufgerufen wird. Danach können Sie schon wieder in den GUI-Builder
zurückkehren und das Beispiel testen.
Zur Laufzeit generiert die Search-Methode
alle Filterbedingungen (Where-Condition)
für das Formular, verknüpft diese mithilfe
des logischen UND Operators, setzt die
Query inklusive sämtlicher Joins ab und gibt
anschließend sogar das Abfrageergebnis in
der Tabelle aus, sodass man sich um nichts
mehr kümmern muss. Suchformulare lassen
sich kaum mehr einfacher konstruieren.
Das Formular lässt sich nun individuell anpassen, indem Sie einfach entsprechende
Formular-Elemente entfernen oder bei Bedarf hinzufügen, beispielsweise um damit
auch eine Suche in Zeiträumen und Wertebereichen möglich zu machen. Beenden Sie
die Vorschau und duplizieren Sie dazu die
Formularzeile bei KILOMETERSTAND. Klicken Sie dazu zuerst das Label KILOMETERSTAND an, dann mit gedrückter Shift-Taste
auf das Eingabefeld daneben und klicken Sie
schließlich in der oberen Symbolleiste auf das
0611 internet magazin
ANZEIGE
Symbol Klonen. Benennen Sie nun die Beschriftungen der Labels um
in KM VON und KM BIS. Klicken Sie das erste Textfeld bei KM VON
an und wählen Sie in den Eigenschaften bei Operator für Bedingung
den SQL-Operator >= aus. Wählen Sie abschließend beim zweiten
Textfield den Operator <= aus und starten Sie das Beispiel.
Komplexere Abfragen
Für noch komplexere Abfragen bietet XDEV 3 einen komfortablen
Query-Assistenten, mit dem man sich Joins und sämtliche Abfragebedingungen per Hand zusammenklicken kann. Auch alle
wichtigen Aggregatfunktionen sowie Gruppierung, Sortierung
und Limits werden unterstützt. Sehr innovativ ist die Abbildung
logisch verknüpfter Bedingungen, die untereinander dargestellt
werden. Anstatt Klammern zu setzen, werden die Editoren eingerückt, wodurch auch bei zahlreichen Bedingungen die Übersicht
erhalten bleibt. Als Parameter können im Assistent auch Variablen
und Methodenaufrufe angegeben werden. Der Assistent wird mit
der Anweisung XDEV.Query(); aufgerufen. Der generierte Code
besteht aus Java-Objekten, die sich sowohl mit dem Assistenten
als auch direkt im Editor bearbeiten lassen. Erst zur Laufzeit werden die Statements in SQL umgewandelt.
Eigene SQLs absetzen
Wie alle RAD-Features müssen auch sämtliche Datenbankfunktionen, die XDEV 3 zur Verfügung stellt, nicht zwingend verwendet
werden. Wer seine Abfragen lieber direkt in SQL formulieren möchte, kann mit XDEV 3 auch SQL-Strings absetzen oder dynamisch
generieren lassen. Dafür stellt die XAPI in der Klasse DBUtils die
Methode query() zur Verfügung. Das Abfrageergebnis wird damit
wahlweise als Resultset-Objekt oder virtuelle Tabelle zurückgegeben. Auch OR-Mapper wie Hibernate lassen sich einbinden. Ergänzend zu den im Workshop beschriebenen Suchvarianten stellt die
XDEV Component Suite weitere Komponenten und Funktionen für
Datenbankapplikationen zur Verfügung, unter anderem Datagrids,
Paging, Paging, Lazy-Loading und Quickfinder.
Fazit
Mit XDEV 3 lassen sich individuelle Datenbankanwendungen auf
Basis von Java einfach umsetzen. Der Umfang an Datenbankfunktionen ist gewaltig und die Zeiteinsparung im Vergleich zur klassischen Java-Programmierung enorm. Durch die an 4GL-Tools wie
Access, FoxPro oder Filemaker angelehnte Arbeitsweise vereinfacht
XDEV 3 die Datenbankprogrammierung mit Java. Auch Anwender ohne Java-Kenntnisse kommen auf Anhieb zurecht, sodass mit
XDEV 3 ein Umstieg auf Java sofort möglich ist. Die mit XDEV 3
erstellten Projekte lassen sich nicht nur als klassische Java-DesktopApplikation fertigstellen, sondern auch über das Internet aufrufen
und als Rich Internet Applications im Browser ausführen. Das
macht XDEV 3 auch für Web-Entwickler interessant, die sich nicht
mit AJAX-Frameworks und Browser-Inkompatibilitäten herumschlagen möchten.
Gerald Kammerer / ds
internet-magazin.magnus.de
KLarheit bei der
stUdienwahL
Der Übergang von der Schule ins Studium ist oft steinig.
Denn viele Jugendliche wissen nicht, was sie überhaupt
studieren sollen. Die Beratungsfirma Campusmondi hilft
umfassend bei der Auswahl des richtigen Studiengangs.
Welchen Weg soll mein Kind nach dem Abitur einschlagen? Welche
Studien- und Ausbildungsmöglichkeiten bieten sich in Deutschland und
dem Ausland an? Und wie sieht es mit der Studienfinanzierung aus?
Das sind nur einige der Fragen, die sich besorgte Eltern tagtäglich stellen. Um etwas Licht ins Dunkel zu bringen, werden deshalb immer wieder Beratungsstellen aufgesucht. Doch meist sind die Angebote – wie
bei der Agentur für Arbeit – nur begrenzt. Umfassende Hilfestellung
kann deshalb nur ein professioneller Berater leisten. Denn nur er hat
einen kompletten Überblick über die Hochschullandschaft und weiß,
welche Unterschiede zwischen den einzelnen Universitäten bestehen.
Zudem kann er umfassend über Karriere- und Einstiegsmöglichkeiten
nach dem Studium beraten.
Die Berliner Beratungsfirma Campusmondi ist ein solcher Dienstleister.
In mehr als zehn Jahren hat das Unternehmen unter der Leitung von
Geschäftsführer Matthias Trüper weit über tausend Jugendliche erfolgreich beim Übergang von der Schule ins Studium beraten und ebenso
Studienabbrechern zu neuen Perspektiven verholfen.
Umfassende LeistUngen
Alle Beratungen bei Campusmondi beginnen mit einem eingehenden
persönlichen Gespräch, dem je nach Bedarf weitere Treffen folgen.
Campusmondi berät in allen großen deutschen Städten sowie in Norditalien, der Schweiz und Österreich. Die Dienstleistungen von
Campusmodi sind kostenpflichtig, die Höhe entspricht jedoch nur
einem Teil jener Kosten, die etwa in den USA für diese Beratung
verlangt wird. Campusmondi-Kunden finden sich übrigens an vielen
deutschen Fachhochschulen und Universitäten sowie an vielen bekannten Universitäten in den USA, Großbritannien, Kanada und auch
in zahlreichen europäischen Ländern.
Weitere Informationen finden Sie
unter www.campusmondi.com
Herunterladen