XStore is a framework for persisting objects in a database.
The primary goal of XStore is to combine the programming simplicity
of an object-oriented database with the availability (or commercial
acceptability) of a relational database. A programmer employing the
object-oriented programming paradigm would rather deal with classes,
fields, and associations rather than tables, columns, and relationships,
and an object-oriented database supports this view of persistence.
Unfortunately, object-oriented database products have not met with
much acceptance in the mainstream IT community where relational
databases are pervasive.
XStore attempts to bridge this gap by implementing the client-side
features of an object-oriented database while using a relational
database as a storage engine. From the programmer’s perspective,
XStore operates like an object-oriented database. Persistent objects
are created, manipulated, and deleted much like transient objects
with very little attention to the details of object persistence.
Persistent objects automatically become part of the current
transaction when they are created or loaded and any changes are
automatically persisted when the transaction is committed.
XStore uses metadata to map class fields and associations to tables
and columns in a relational database (RDBMS). Tools are provided for
generating the mapping metadata as well as proxy and factory classes
for persistent objects. XStore should work with any relational database
that provides a JDBC driver supporting prepared statements. XStore has
been tested with MySQL, SQL Server, and Oracle databases and with JDK
1.4, 1.4.2, and 1.5.
The latest archive (JAR, 109KB) is available.