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 (JDO 1.0, JDO 2.0, JDO 2.1). 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.
Apache JDO is the project controlling the direction of the
JDO standard and, as such, is the place to go for information specific to the standard API.
You could also download a
Free JDO1 book
and do some reading.