jdo Java Data Objects (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. The JDO API itself is provided by the jdo-api (or javax.jdo) JAR. The whole point of using such a standard interface is that users can, in principle, swap between implementations of JDO without changing their code. DataNucleus provides an implementation of JDO, embodied in the datanucleus-api-jdo JAR, so make sure you have datanucleus-api-jdo.jar in your CLASSPATH for using this API.

Note that this version of DataNucleus requires the JDO 3.1 API

The process of mapping a class can be split into the following areas

Note that with DataNucleus, you can map your classes using JDO MetaData (XML/Annotations) OR using JPA MetaData (XML/Annotations) and still use the JDO API with these classes.

At runtime with JDO you start with the creation of a PersistenceManagerFactory (PMF) which provides the connectivity to the datastore. The connection to the datastore is dependent on a set of persistence properties defining the datastore location, URL etc as well as behaviour of the persistence process.

With JDO, to persist/retrieve objects you require a PersistenceManager (PM) that provides the interface to persistence and querying of the datastore. You can perform persistence and querying within a transaction if required, or just use it non-transactionally.

JDO allows querying of the datastore using a range of query languages. The most utilised is JDOQL providing an object-oriented form of querying, whereas some datastores also permit SQL.

If in doubt about how things fit together, please make use of the JDO Tutorial

If you just want to get the JDO API javadocs, then you can access those here (Apache JDO)