BRIDGING
JAVA OBJECTS AND RELATIONAL DATABASES
ObJectRelationalBridge (OJB) is an Object/Relational mapping tool that allows transparent persistence for Java Objects against relational databases.
OJB provides multiple APIs:
A full featured ODMG 3.0 compliant API. (See tutorial2 for an introduction.)
planned: A JDO compliant API
The
OJB-JDO team has just started to work and is still looking for
developers to join.
A low-level PersistenceBroker API which serves as the OJB
persistence kernel. The OJB ODMG- (and planned: the JDO-)
implementation is build on top of the PersistenceBroker kernel.
This API can also be used directly by applications that don't
need full fledged object level transactions (see tutorial1
for details).
OJB can be used in two modes:
In standalone mode (or single VM mode) the OJB PersistenceBroker is running in the same Java VM as the client application. This is useful if only one instance of the client application is running (e.g. in applications with a local database or in single-server Servlet- or EJB applications). This is the default mode.
In Client/Server mode. Multiple Clients can run against multiple PersistenceBrokerServers running in multiple VMs and/or on multiple physical machines. This is useful in typical Client/Server scenarios or when an ApplicationServer based application must be loadbalanced accross multiple servers. See the Client/Server tutorial for details.
OJB uses an XML based Object/Relational Mapping. The mapping resides in a dynamic MetaData layer which can be manipulated at runtime through a simple Meta-Object-Protocol (MOP) to change the behaviour of the persistence kernel.
OJB provides several advanced O/R features like an ObjectCache, lazy materialization through virtual proxies or a distributed lock-management with configurable Transaction-Isolation Levels.
OJB supports Bean Managed EntityBeans (BMP). It can be used to enhance the performance of EJB applications.
A more complete featurelist can be found here. A roadmap for future developments is here.
The ObJectRelationalBridge homepage (this page) is hosted at Sourceforge.
The SourceForge projects page provides News, Discussion Forum, BugTracker etc.
There is also a ObJectRelationalBridge mailinglist on SourceForge.
Read the FAQs to see whether your question has been already answered.
OJB is licensed under the LGPL license. The obligatory Licence information is here.
A history of changes documents the most
important improvements of each public release.
There is also a
todo-list available that provides an overview
on the ongoing work.
You'll find a list of available distributions on the projects page. The latest release is listed on top of the list.
If you want to browse the CVS tree you can use the HTML interface at http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/objectbridge/ojb-1-0/.
More info on CVS access can be found here: http://sourceforge.net/cvs/?group_id=13647.
The currently active CVS module is ojb-1-0.
To make a complete checkout from cvs, run the following command: cvs
-z3 co ojb-1-0
Once you have
made an initial checkout you can use: cvs
-z3 update -Pd
to bring your
local version into sync with the archive.
A list of rules for developers checking in code to CVS can be found here.
If you want to work on one of the open tasks, contribute a patch or utility or share ideas, please drop me a line: mailto:thma@users.sourceforge.net
The OJB documentation covers the following topics:
general introduction
Tutorials
Using ObJectRelationalBridge as a persistence layer in your applications
Advanced Mapping topics (1-1,
1-n and m-n associations, proxy techniques, cascading operations,
supporting polymorphism, mapping inheritance hierarchies and
interacting with the OJB load mechanism)
examples
System documentation
regression tests
build process
$FOOTER$