Deutsche Oracle Anwendergruppe TagIch hatte das Vergnügen, in dieser Woche zum ersten Mal bei dem "Deutsche Oracle Anwendergruppe Tag" zu sein. Schon beim Betreten der Tagung hat man nach meinem Empfinden gesehen, dass dies keine Java Veranstaltung war und zwar am höheren Alter der Teilnehmer und dem etwas vornehmeren Dress-Code. Nach einer eher chaotischen Anmeldung ging es dann los: Wir sprachen im Track der SIG Development. Erste Präsentation war - wenig überraschend - Herr Jäkle von Oracle mit den Themen EJB 3 und Top Link. Dabei gab es nicht viel neues zu berichten.
Rudolf Jansen sprach dann über JDBC. Ich hatte hier eigentlich nicht viel spannendes erwartet, wurde aber eines besseren belehrt. In JDBC 4.0 wird sich die Schnittstelle weitgehend ändern und iBATIS sehr ähnlich werden. Vor allem werden dort JDK 1.5 Annotationen verwendet. Dadurch ist es möglich, die Datenbank-Verbindung nur noch zu deklarieren. Anschließend entwirft man dann eine Klasse, auf die das Ergebnis einer Anfrage gemappt werden soll, die also für jede Spalte ein Attribut hat. Anschließend definiert man ein Interface mit Methoden, die jeweils mit einer Query in einer Annotation versehen werden. Diese Query wird bei der Ausführung der Methode an die Datenbank übergeben und das Ergebnis in Objekte umgewandelt und anschließend zurückgegeben. Um die Implementierung des Interfaces zu bekommen, muss man die QueryFactory benutzen. Die geben dann ein DataSet des passenden Typs zurück und man kann darüber iterieren. Außerdem gibt es Erweiterungen von XML Daten. Ingesamt eine recht coole Sache, mit der die Funktionalität von iBATIS nachgebaut wird. Offene Fragen sind für mich, ob z.B. Caching auch integriert ist. Zudem frage ich mich, ob es eine gute Idee ist, wenn ein Treiber eine solche Schnittstelle hat. Wobei mit aber auch nicht klar ist, ob die gesamte Implementierung von JDBC 4.0 im Treiber liegen muss.
Es gab dann einen Vortrag von Frank Schwarz (SignSoft) über JDO und JDO 2.0. Dann sprach Markus Kehle (wie ich von Saxonia Systems) über Hibernate. Mein Spring Vortrag war recht kompakt, d.h. ich habe in 45 Minuten Dependency Injection, JDBC Templates, Transaktionen und iBATIS vorgestellt. Es gab dann anschließend im praivten Gespräch noch einige Fragen und interessante Kontakte.
Den Abschluss bildete noch ein Oracle Thema: ADF und BC4J. Das ist die Java Oracle Lösung, deren Ziel wohl eine 4GL bzw. Oracle Forms ähnliche Entwicklung für Java ist. Entsprechend gibt es eine gute Untersützung in JDeveloper und vor allem CRUD (Create Read Update Delete) Operationen sind leicht implementierbar. Nachteile sind die typischen für einen solchen Ansatz: Vieles ist verdeckt und dann auch schwer zu verstehen. Wenn man eigenen Code integrieren will, wird auch der Einarbeitungsaufwand hoch. Pflege und Anpassung sind entsprechend schwer. Und ein Releasewechsel im Framework ist dan auch ein Problem. Lösung kann eine Schicht zwischen dem Generat und eigenen Erweiterungen sein. Das ganze wird gerade standardisiert, wobei ich mich aber nach dem Sinn frage, denn ein Vorteil ist gerade die Integration in das Oracle Paket - wenn man eh alles aus einer Hand kauft, macht ein Standard wenig Sinn.
Ingesamt also eine recht interessante Veranstaltung, vor allem, weil es ein ganz anderer Blickpunkt war, als man ihn auf den Java Konferenzen so hat, und auch die Fragen waren sehr anders. Und sowas erweitert immer den Horizont.