Extensible Object-Relational Mapping

What Is It?

XORM is an extensible object-relational mapping layer for Java applications. It provides interface-based persistence to RDBMSs while allowing developers to focus on the object model, not the physical layer.


31 May 2004: New Release! Download now!


XORM uses the API described by the Java Data Objects (JDO) specification (JSR 12) and implements many of the interfaces specified by JDO. In contrast to most JDO implementations, XORM does not require you to run a class-file enhancer before deploying your persistence-capable classes. Instead, XORM allows you to specify persistence-capable classes using abstract classes or interfaces; bean-style get()/set() methods are enhanced at runtime to be managed for persistence.

XORM has been engineered to provide a rapid application development environment, so you can build and persist Java objects with as little effort as possible. XORM does not require a custom database schema and does not create special tables in your database: you can map your Java objects to most existing schemas, or start from scratch.

How Do I Get It?

You can download the latest public release of XORM from the SourceForge download page. For the adventurous, you can download current CVS snapshots and/or check out the CVS tree directly from SourceForge.

XORM is Free Software released under the GNU General Public License. There are no export restrictions or fees for either runtime or developer licenses.

How Do I Use It?

The XORM user's guide briefly describes XORM's usage. Most of the interfaces you'll use are part of JDO, and XORM is simply the implementation running behind the scenes. You can find general JDO articles and books elsewhere online.

If you'd like to get started using XORM now, the tutorial takes you step-by-step through an example. If you're interested in comparing XORM with other JDO implementations, check out the features list.

The "xorm-users" email list is a place to ask questions and meet other XORM users. If you're troubleshooting an issue or have general questions, subscribe to the list.

Can I Help Out?

Of course! That's a major benefit of all this open source stuff. If you'd like to get involved in the development of XORM, please see our project page on SourceForge for the current development status, and contact a project administrator if you'd like to be involved as a developer, tester or in any other capacity.

If you'd like to hack on XORM, you might want to view the XORM API JavaDocs. In general, however, you will be coding against the JDO API and very infrequently need to use the classes from the org.xorm.* hierarchy, so unless you're planning on working on the internals of XORM, don't let these Javadocs scare you.

Related Projects

  • XORM uses the CGLIB code generation library, another SourceForge project.
  • Other free software projects that use the JDO API for object-relational mapping include Jakarta OJB and TriActive JDO.

Further Reading

$Header: /cvsroot/xorm/xorm/docs/index.html,v 1.15 2004/05/30 08:28:39 wbiggs Exp $