Sunday, February 4, 2007

An Overview of Object-Relational Mapping (ORM)

It is no secret that RDBMS' are the most common type of databases in a majority of organizations today when compared to other formats (e.g. object-oriented, hierarchical, network).

A majority of the software applications that use relational database and OO languages end up writing code to map the relational model to the OO model. This can involve anything from cumbersome mapping code (because of the use of embedded SQL or SP calls) to heavy-handed technology, such as EJB's entity beans.

Because most of us seem to like both relational databases and OO, Object-Relational Mapping (ORM) has become a natural choice for working with POJOs (plain old Java objects), especially if you don't need the distributed and secure execution of EJB's entity beans (which also map object attributes to relational database fields).

Although you still need to map the relational model to the OO model, the mapping is typically done outside of the programming language, such as in XML files. Also, once this mapping is done for a given class, you can use instances of this class throughout your applications as POJOs. For example, you can use a save method for a given object and the underlying ORM framework will persist the data for you instead of you having to write tedious INSERT or UPDATE statements using JDBC.

Hibernate is one such ORM framework. Hibernate also supports the EJB 3.0 standard, so should you need to move to EJB 3.0, it'll be an easy transition (in fact, EJB 3.0 is based on many of the concepts and techniques found in Hibernate). EJB 3.0, as you might already know, aims to simplify working with EJB technology. However, if you do not need the many services provided by EJB technology, you can use the Hibernate core technology by itself (without needing a big EJB container product such as an application server).


Popular Posts (Last 30 days)

This is a personal blog and I do not speak for my employer.