Klaus Schultz  Reverse- & Software-Engineering


Hibernate3 Erfahrungen

 

Home
Nach oben
OO-Case-Tools
OR-Mapping-Tools
Generierungs-Tools
Struts-Tools

OR-Mapping-Tools

Diese Liste enthält Tools für das Objekt-Relationale-Mapping. Die Liste führe ich seit 1996, hauptsächlich zu Seminar-Zwecken. Manchmal kommt etwas hinzu, wenn z.B. in den Fachzeitschriften ein neues Produkt annonciert wird, seltener wird etwas gelöscht, da das Einstellen eines Produkts meist sang- und klanglos geschieht. Dementsprechend sind auch die Kurzcharakteristiken auf unterschiedlichem zeitlichen Stand.

Die Reihenfolge der Tools ist beliebig, eventuelle Kommentare sind subjektiv zu verstehen und sagen nichts aus über Leistungsfähigkeit und Reife. Hibernate ist derzeit die Nummer 1 im Markt, persönliche Erfahrungen und Tips zu Hibernate finden Sie hier

Java-Produkte 

Bei den Java-Produkten ist die JDO-Unterstützung sehr interessant, wobei JDO nicht unbedingt JDO ist! Einerseits ist JDO (Java Data Objects) eine allgemeine Bezeichnung in Analogie zu ADO von Microsoft, im engeren Sinn ist JDO ein Java-Standard (JSR 12) von Sun zur Speicherung von Java-Objekten. JDO enthält eine eigene Query-Sprache, die objektorientiert aufgebaut ist, im Gegensatz zu SQL oder EJBQL.

Eine hoch interessante Entwicklung ist, dass die 2006 verabschiedete EJB-Spezifikation 3.0 die wesentlichen gemeinsamen Features von TopLink, Hibernate, JDO, etc. übernimmt. Das ist eine radikale Abkehr von der bisherigen in J2EE 2.0 favorisierten Art von Persistenz. Die Entity-Objekte werden wieder "normale" Java-Objekte, die über das Java Persistence API (JPA) persistent gemacht werden. JPA kann sowohl mit einem Container betrieben werden als ohne Container.
Die Version 2.0 enthält wesentliche Erweiterungen, z.B.. Criteria-Abfragen, und wird 2009 verabschiedet werden.

Opensource oder Freeware-Produkte

bullet Hibernate  ist ein Open Source-Projekt, das die transparente Persistenz von Java-Objekten zum Ziel hat, d.h. die zu speichernden Java-Objekte sind "POJOs". Hibernate ist ein sehr ausgereifter OR-Mapper und ist derzeit "im Trend". Es sind verschiedene Bücher dazu erschienen, empfehlenswert ist z.B. "Java Persistence with Hibernate" von Chr.Bauer/Gavin King, früher als   "Hibernate in Action" veröffentlicht.
Hibernate unterstützt JPA, geht aber an vielen Punkten darüber hinaus.
Es gibt auch eine Hibernate-Version für .NET.
Meine persönlichen Erfahrungen und Tips zu Hibernate finden Sie hier.
 
bullet DataNucleus bzw. JPOX
unterstützt sowohl den JDO-Standard als auch JPA.
Erweiterungsarchitekur mit Plugin's wie in Eclipse
 
bulletEclipseLink enthält eine JPA-Unterstützung, die aus TopLink Essentials weiterentwickelt wurde, und ist die Referenzimplementierung für JPA 2.0
 
bulletOpenJPA ist eine JPA-Implemtentierung von Apache
 
bulletCASTOR www.castor.org  
bildet Java-Objekte ab a) auf XML b) auf RDBMS
 
bulletObJectRelationalBridge (OJB) für Java, jakarta.apache.org/ojb/tutorial4.html 
unterstützt das ODMG 3.0 API und das JDO API 
 
bulletDbGen ein OR-Mapping -Tool für Java dbgen.sourceforge.net 
 
bulletJRelationalFramework auf jrf.sourceforge.net 
 
bulletwww.objectstyle.org/cayenne ist ein OR-Mapping-Produkt, das sogar GUI-Tools zur Modellierung des Mapping beinhaltet. In diesem Artikel wird Cayenne vorgestellt, und hier mit Hibernate verglichen.
 
bulletSimpleORM auf www.simpleorm.org 
 
bulletDBObjects ist kein Objekt-Relationales Mapper (der geht vom Objektmodell aus und generiert ein Relationenmodell), sondern geht von vorhandenen Tabellen aus und generiert pro Tabelle eine Klasse. www.tntsoft.de 
 
bulletder OR-Mapping-Teil der Quasar-Architektur von sd&m ist ebenfalls Opensource.
 
bulletTJDO ist eine Open-Source-Implementierung des JDO-Standards.
JDOQL wird vollständig unterstützt.
 
bulletJPOX ist eine Open-Source-Implementierung des JDO-Standards.
 
bullet Versant hat sein JDO/EJB-Produkt der Opensource-Gemeinde übergeben
 
bulletbei den kommerziellen Produkten finden sich auch einige, bei denen der nicht-kommerzielle Gebrauch kostenlos ist

Kostenpflichtige Produkte für Java:

bulletTopLink (s.o.)
 
bulletPolar von IBL, Max-Lang-Str. 24, 70771 LE-Leinfelden 
Polar bildet OO-Strukturen auf relationale Datenbankstrukturen ab (Mapping und Zugriffsschicht)
Sprachen: MS C++, Java, SmallTalk, ObjectStudio 
RDBMS: Oracle, DB2, Sybase, ODBC 
Die Firma IBL ist jetzt Teil von Plenum, und aus Polar wurde Avantis, eine EJB-konforme Weiterentwicklung
 
bulletJavaBlend von Sun, ist jetzt Teil von Forte, der Entwicklungsumgebung von Sun
 
bulletCocobase von Thought Inc.: www.thoughtinc.com  
Object to relational mapping - Secure Internet Database Access - Simple Integration into existing ORBs - Turns existing Orbs into easy to use database access system - Dynamic binding for relational, object and mainframe databases Enthält evtl. auch eine kostenlose Version.
 
bulletJDX von Software Tree: www.softwaretree.com  
Java-RDBMS-Mapping , nutzt JDBC, um Microsoft SQL Server, Oracle, Sybase, IBM DB2 und andere RDBMS anzusprechen. Tool provided for relational schema-generation given Java class definitions. Legacy relational data may easily be mapped to Java objects - Cross-platform solution using 100% pure Java
 
bulletJDBCStore von LPC Consulting Services www.ilap.com/lpc/html/jdbcstore.html 
 
bulletFrontierSuite von www.objectfrontier.com  
Kann auch in jedem EJB 2.0 Application Server als CMP-Engine eingesetzt werden (Container Managed Persistence)
 
bulletNovera : www.novera.com  
Java-RDBMS-Mapping
 
bulletUnidata: objects.unidata.com  
Java-RDBMS-Binding, setzt auf JDBC auf, für Solaris und Win NT, $2000 pro Entwickler
 
bulletWatershed: www.watershed.com  
Java-RDBMS-Mapping
 
bulletSQL2Java (S2J) von www.bitmechanic.com  
Generator
 
bulletVBSF von Objectmatter www.objectmatter.com
Unterstützt auch JDO
 
bulletJRELAY von ObjectIndustries www.objectindustries.com/products.html  
Unterstützt jetzt auch JDO 
 
bulletintelliBO www.intellibo.de  von Signsoft 
unterstützt JDO 
Signsoft GmbH, Dresden www.signsoft.de  
 
bulletKodo JDO von Solarmetric www.solarmetric.com 
implementiert JDO 

Ein Vergleich der verschiedenen Java-OR-Mapping-Tools findet sich hier.

Ein Benchmark-Suite mit ein Ergebnissen von ein paar OR-Mapping-Tools  findet sich unter http://www.polepos.org

 

Allgemeine Produkte

bulletTopLink, otn.oracle.com/products/ias/toplink/content.html  
OR-Mapping für alle Smalltalk-Dialekte, ersteVersion 1994, ständig weiterentwickelt, seit 1998 auch eine Java-Version. 
Ursprünglich von "The Object People", dann verkauft an WebGain, dann an Oracle. Seitdem wieder zivile Preise.
Seit 2006 gibt es eine kostenlose open source-Basisversion von TopLink, die auch die offizielle Referenzimplementierung des Java Persistence API JPA (siehe hier) darstellt.
 
bulletRogue Wave, Robert-Bosch-Str.5 , 63303 Dreieich 
www.roguewave.com/products
  
Produkte für C++ 
* DBTOOLS.H++ ist eine Klassenbibliothek, die nur die Datenbankzugriffe kapselt. 
* DBFactory ist ein Produkt, das aus Tabellen-Beschreibungen C++-Klassen generiert
* und das von Subtle entwickelte OR-Mapping -Tool
 
bulletPersistence: www.persistence.com 
Vertrieb: Interactive Objects Software GmbH, Freiburg 
leistungsfähiger als eine reine Klassenbibliothek, Zwischenschicht zum RDBMS mit Caching der Objekte. Gute Unterstützung für das OO-Relat.-Mapping. EJB-Application -Server
 

Einige ODBMS zeichnen sich durch gute Kopplungsmöglichkeiten mit RDBMS aus:

bulletONTOS OIS: www.ontos.com  
Ontos ist ein OODBMS. OIS heißt Object Integration Server, ein spezielles Produkt zur OO-RDBMS-Integration
 
bulletObjectStore Dbconnect 
ObjectStore ist ein ODBMS, die Komponente Dbconnect die Kopplung mit RDBMS
 
bulletO2 : www.o2tech.com  
O2 ist ein ODBMS mit einem "Relational Database connectivity tool", das auch das OR-Mapping unterstützt
 
bulletPoet mit der "POET SQL Object Factory" www.poet.de  
Poet ist ein OODBMS für C++ und Java. Mit dem gleichen API, das zur Speicherung in das OODBMS dient, können Objekte auch in ein RDBMS (MS SQL Server, Oracle, DB2) gespeichert werden. Dazu wird aus dem OO-Schema automatisch ein relationales Schema generiert. Weitere Features: Objekt-Caching, Sperren auf Objekt-Ebene, geschachtelte Transaktionen, Abbildung auch von komplexen Datentypen. Neuer Name: "FastObjects"

 

 

 
Letzte Änderung: 16.06.2009

Zurück zur Startseite