Object–relational mapping (ORM) is a programming technique for converting data between incompatible type systems using object-oriented programming languages. This creates, in effect, a “virtual object database” that can be used from within the programming language.
In essence, ORM is a design pattern for converting (wrapping) that data stored within a relational database into an object that can be used within an object oriented language. It creates a layer between the language and the database, helping programmers work with data without the OOP paradigm.
Compared to traditional techniques of exchange between an object-oriented language and a relational database, ORM often reduces the amount of code that needs to be written. It standardizes interfaces reducing boilerplate and speeding development time. Advocates of ORMs claim they increase productivity, improve application design, reuse code and maintain the application over time. On the other hand, ORM suffers the disadvantage of the abstraction obscuring what’s happening in the code. And over-use of ORM software can produce poorly designed databases.
There is a wide range of ORM software available. Here’s our verdict summarised in a legendary ratings chart. Only free and open source software is eligible for inclusion.
Let’s explore the 9 Java ORM tools. For each program we have compiled its own portal page, a full description with an in-depth analysis of its features, together with links to relevant resources.
Java Object-Relational Mapping Software | |
---|---|
Hibernate ORM | Idiomatic persistence for Java and relational databases |
MyBatis | Persistence framework with custom SQL and stored procedures |
Apache Cayenne | Provides object-relational mapping (ORM) and remoting services |
DataNucleus | Supports JDO and JPA API's for persistence |
jOOQ | jOOQ Object Oriented Querying |
Apache OpenJPA | Java persistence project |
Ebean | Designed to be simpler to use and understand than JPA or JDO products |
EclipseLink | Persistence solution addressing relational, XML, and database web services |
Persism | Lightweight, auto discovery, autoconfiguration ORM |
This article has been revamped in line with our recent announcement.
Read our complete collection of recommended free and open source software. Our curated compilation covers all categories of software. The software collection forms part of our series of informative articles for Linux enthusiasts. There are hundreds of in-depth reviews, open source alternatives to proprietary software from large corporations like Google, Microsoft, Apple, Adobe, IBM, Cisco, Oracle, and Autodesk. There are also fun things to try, hardware, free programming books and tutorials, and much more. |