JDO provides a means for persisting objects to a relational database. The term persistence here means storing a piece of information after the program exits. This task is quite challenging since it involves serializing the orderly placed structured objects into a tabular database. The JDO serves as an alternative programming interface, which helps to achieve object persistence in Java technology through XML metadata and bytecode enhancements.
JDO is well-known for supporting object persistence transparency, as follows:
The JDO instance to the database is handled in a transparent way.
JDO is transparent to the Java objects being persistent. There is no requirement to add attributes to Java classes as it even works well with fields without get and set methods as well as with fields offering private visibility.
Programs written can be executed against relational databases, object databases, file system terms and XML documents.
The JDO is transparent to the database itself, which means porting of applications to different databases supporting JDO implementation is now relatively easy. And the binary compatibility of JDO instances ensures that it does not require recompilation even if there are alterations at the source code level.
The benefits of JDO implementations include portability, high performance, seamless integration with EJB, object transparency and ease of use.
The JDO classes are of three types:
1. Persistence-Capable: These are the type of classes whose instances can be persisted into a database. This type of class needs enhancement, as per JDO metadata specification, before they can be used in JDO environment.
2. Persistence-Aware: This type of class manipulates the persistence capable class. These classes are enhanced with minimal JDO metadata.
: This type of class is non-persistable and does not require JDO metadata. The evolution of JDO for object persistence has finally laid the issues of loading and storing data to rest.