Zur Webseite der Informatik

JPOM Java Persistence Object Manager

Was ist JPOM?

JPOM ist ein Framework zur Abbildung objektorientierter Strukturen auf relationale Datenbanken - also ein Persistenzframework. In Abgrenzung zu anderen Produkten dieser Art (von denen es ja nun wirklich reichlich gibt wie z.B. JDO-Implementierungen, Hibernate, TopLink, EJB-Persistenz, usw.) ist JPOM besonders leichtgewichtig. Eine Einarbeitung in JPOM erfogt sehr schnell. Die Implementierung ist knapp und übersichtlich. 

Dennoch lassen sich mit JPOM anspruchsvolle Applikationen entwickeln. So basiert eine produktive Web-Applikation mit mehreren hunder Usern und fast 100 fachlichen Klassen auf JPOM. 

JPOM Applikationen sind methodisch durch eine Code-Generierung der persistenten Klassen auch UML-Modellierungswerkzeugen geprägt. Derzeit bestehen Implementierungen für Rational Rode und Poseidon. 
JPOM bietet dann alle Basisfunktionen zu Persistentmachung wie

  • Generierung eindeutiger Objekt-IDs
  • Objektinstanzierung in Abfragen und Navigation
  • Objektnavigation
  • Objekt-Transaktionen
  • Berücksichtigung von Vererbung


Weitere Informationen entnehmen Sie bitte der Slideshow

JPOM ist ein Opensource Produkt. Interessierte sind zur Mitarbeit gerne eingeladen. Setzen Sie sich bei Rückfragen mit Rainer Schmidberger in Verbindung. Beim Einsatz von JPOM sind die im Programmcode hinterlegten Nutzungs-Bedingungen zu beachten!


04.12.04: Vorankündigung für Version 1.6

  • Methode PObject.delete liefert (wie auch schon PObject.store) ein Result-Object (statt dem int) zurück. Achtung:wer den Rückgabewert von delete genutzt hat, muss hier den Code ändern!
  • Result kann einen String aufnehmen, Result erhält auch einen Konstruktor für String
  • PObject erhält public setString(attributeName : String) evenso auch für int, double, DateTime. Zudem auch die get-Methoden.
  • MetaClass; public int getAttributeID(String attributeName)

Neu in Version 1.5

Neu in Version 1.4

  • Klasse PTransaction zur Klammerung mehrerer Objekt-Speicherungen in einer Datenbank-Transaktion
  • Bei Objekt-Transaktionen wird ein Transaction-Object als Kopie generiert, auf das alle set/get-Methoden angewendet werden
  • Caching-Timeout Zeitkonstante ist einstellbar

Neu in Version 1.3

  • Neue Abfragemöglichkeiten in WhereCondition mit addUnion, exist und selectIn
  • Transaktionen eines POBject werden ohne autocommit-Mode abgeschlossen
  • Methode store von PObject liefert Result zurück

Neu in Version 1.2

  • Deutliche Vereinfachung der zu generierenden Codeabschnitte
  • Assoziationen werden nun wie Attribute über einen Index angesprochen
  • AssociationIDs beginnen mit 2 Underscore __
  • Für Web-Anwendungen (Servlet oder JSP) steht ein Inspector zur Verfügung 

  • Inkompatibilität zu V1.1: 
    AttributIDs fangen nun mit einem _ an. Sofern in eigenem Code auf AttributeIDs referenziert wurde muss dieses angepasst werden.

Downloads

Dokumentation

Sourcen und Tools

Beispielprojekt

Alte Versionen