Java Data Objects

The Java Data Objects (JDO) API is a specification of Java model abstraction of persistence, that is developed under the supervision of the Java Community Process.

Java Data Objects

Java Data Objects

     

The Java Data Objects (JDO) API is a specification of Java model abstraction of persistence, that is developed under the supervision of the Java Community Process. The original JDO (i.e. JDO version 1.0) is Java Specification Request 12 (JSR 12), and while the current JDO (JDO 2.0)  is Java Specification Request 243 (JSR 24K3), while JDO 2.1 is being developed by the Apache JDO project. One of the feature of JDO is a transparency of the persistent services to the domain model. JDO persistent objects are simple java classes therefore there is no need to implement certain interfaces or extend from special classes.

External XML metafiles used to define object persistence may have vendor-specific extensions. JDO vendors provides enhancers to the developers so that compiled java classes can be modify so that they can be transparently persisted. Nowadays, JDO vendors are providing various options for persistence, e.g. to RDBMS, to OODB, to files. 

An application programmer, can directly use JDO technology in order to store the Java domain model instances into the persistent storage (database). Serialization, JDBC, Enterprise JavaBeans (EJB), Bean-Managed Persistence (BMP) or Container-Managed Persistence (CMP) entity beans, Java Persistence API and include direct file I/O are the alternatives to JDO. JDO mainly focuses on building the JDO API and the TCK for compatibility testing of JDO implementations. Classes that includes JDO functionality are portable across different vendors' implementation. Once enhanced, a Java class can be used with any vendor's JDO product.