JDO defines an interface (or API) to persist normal Java objects (or
POJO's in some peoples terminology) to a datastore. JDO doesn't define
the type of datastore. It is datastore-agnostic. You would use the same
interface to persist your Java object to RDBMS, or OODBMS, or XML, or
whatever form of data storage. JDO is a standard.
JDO 1.0 has been in existence since 2002, whilst JDO 2.0 was approved
in early 2005. JDO defines the interface that an implementation has to
implement. JPOX is an implementation of the JDO interface specification. There are
other implementations. The whole point of having a standard interface is that users can, in principle,
swap between implementations of JDO without changing their code.
There are 4 main areas to JDO.
- JDO categorises classes into 3 types. The type of your class
defines how it interacts with JDO. Some classes have no interaction with JDO, whilst others
require you to define their behaviour under JDO.
- Controlling the persistence of your objects. This is performed using a
PersistenceManagerFactory/PersistenceManager. The persistence of
Java objects results in changes to the lifecycle state of the objects.
- Querying your objects in the datastore.
- Controlling the transactions governing the persistence process.
The following diagram attempts to show the main areas.
