This page (revision-6) was last changed on 06-Jul-2008 22:09 by ThomasBayen 

This page was created on 21-May-2008 11:44 by PeterHormanns

Only authorized users are allowed to rename pages.

Only authorized users are allowed to delete pages.

Page revision history

Version Date Modified Size Author Changes ... Change note
6 06-Jul-2008 22:09 2 KB ThomasBayen to previous
5 05-Jul-2008 12:35 4 KB ThomasBayen to previous | to last Herumspielen mit dem Netbeans-generierten Code
4 05-Jul-2008 12:34 4 KB ThomasBayen to previous | to last Herumspielen mit dem Netbeans-generierten Code
3 22-Jun-2008 02:34 1 KB ThomasBayen to previous | to last anderen Datenbanktreiber nutzen
2 21-May-2008 11:49 382 bytes Admin to previous | to last Was Eclipse Recht ist
1 21-May-2008 11:44 382 bytes PeterHormanns to last Was Eclipse Recht ist

Page References

Incoming links Outgoing links

Version management

Difference between version and

!!!Netbeans

Netbeans ist eine Software-Entwicklungsumgebung für die Programmiersprache [Java].

Mittlerweile gibt es viele Erweiterungen, die es ermöglichen, Netbeans auch für andere Programmiersprachen zu nutzen.

JensKapitza hat einen [Vergleich|NetbeansVsEclipse] von [Netbeans] und [Eclipse] begonnen.



!! Mit anderen Datenbanken arbeiten

Ich arbeite gerne mit HSQL, weil das erstens komplett in Java ist und somit keine weitere Software (kein Datenbank-Server) installiert werden muss und weil es die Speicherung von Daten in einfache Files erlaubt. Wie binde ich das nun ein?

Im View "Services" gehe ich im Baum auf "Drivers" und wähle im Kontextmenü "new Driver" aus. Dann brauche ich eigentlich nur anzugeben, wo die Datei "hsqldb.jar" liegt und alles andere erklärt sich fast schon von alleine. Schön! Ich bin auf den neuen Eintrag "HSQLDB" gegangen und über das Kontextmenü und "Connect Using..." habe ich eine neue Verbindung erzeugt. Als URL kann man bei hsqldb z.B. "jdbc:hsqldb:file:datenbank" probieren.

''Leider hatte ich ein paar kleinere Probleme, von denen ich bisher nicht sagen kann, ob diese nur mit hsqldb auftreten. Man muss auf jeden Fall das Schema "PUBLIC" angeben. Ausserdem tauchten die Datenbank-Verbindungen erst nach einem Neustart von Netbeans im Baum auf. Später muss man darauf achten, die Verbindung immer zu schliessen - ein Zugriff gleichzeitig durch mehrere Instanzen (z.B. Netbeans und meine Applikation) ist nämlich bei einer "file:..." URL logischerweise nicht erlaubt.'' Auch ist es ggf. sinnvoll, den Pfad "datenbank" absolut anzugeben, weil der Netbeans-Treiber die Datei sonst im Home-Verzeichnis anlegt, während die Applikation sie später in ihrem eigenen Verzeichnis sucht.



!! generierter Code bei der Anlage eines neuen Projektes

Netbeans kann bei der Projekterstellung u.a. eine komplette kleine Datenbank-Anwendung für eine einzelne Tabelle erzeugen. Dieser erzeugte Code ist ein hübsches Beispiel dafür, wie die Leute von Sun sich das denken, mit Dingen wie JPA (Persistenz), Swing (GUI) und deren Bindung (Beansbinding) umzugehen.

Ich habe es übrigens ohne grosse Hürden geschafft, ein solches von Netbeans erzeugtes Projekt in [Eclipse] zu laden und auszuführen. Dazu waren lediglich ein paar verwendete Bibliotheken ausfindig zu machen und einzubinden.



! Im erzeugten Code die JPA-Bibliothek austauschen

Dann habe ich den von Netbeans benutzten Persistenz-Provider von "toplink" ausgetauscht durch [Apache OpenJPA|http://openjpa.apache.org]. Das ging folgendermassen: Ich habe die beiden eingebundenenen Bibliotheken

 toplink-essentials
 toplink-essentials-agent

entfernt und dafür aus dem von http://openjpa.apache.org heruntergeladenen ein paar hinzugefügt:

 commons-collections-3.2.jar
 commons-lang-2.1.jar
 geronimo-jpa_3.0_spec-1.0.jar
 geronimo-jta_1.1_spec-1.1.jar
 openjpa-1.1.0.jar
 serp-1.13.1.jar

Danach musste die persistence.xml-Datei angepasst werden. Die Angabe des <provider>-Tags habe ich komplett weggelassen (man kann dort die Klasse des openjpa-Providers angeben, aber wenn man gar nichts angibt, nimmt er den einzigen vorhandenen automatisch; so sollte die Datei später wahlweise mit beiden JPA-Bibliotheken arbeiten können. Dann habe ich zusätzliche Properties angegeben wie in der [OpenJPA Doku|http://openjpa.apache.org/docs/latest/manual/manual.html#ref_guide_dbsetup_builtin]
<< 
angegeben, um die Parameter der Datenbankverbindung anzugeben. Auch hier sollte man die alten Properties stehen lassen können, um ggf. beide Bibliotheken nutzen zu können.

Im Prinzip lief das Programm nun schon. Allerdings kam bei der Änderung von Daten eine unschöne Exception:

 java.lang.UnsupportedOperationException: Result lists are read-only.

Hier scheint es eine Besonderheit von ~OpenJPA zu geben, daß erzeugte Listen nicht beschreibbar sind. Dies konnte ich nach Lesen dieser [Mail von der OpenJPA-Liste|http://www.mail-archive.com/users@openjpa.apache.org/msg00972.html] durch eine kleine Änderung an zwei Stellen im Code leicht beheben. (Man kopiert die Liste einfach einmal, bevor man sie benutzt.)

-- ThomasBayen



!!Weblinks
*[http://www.netbeans.org]

[{Tag Java Netbeans}]