This table shows a comparison of notable and available ORM software products.
Software | Platform | Availability | License | Version | Persistence Specification |
---|---|---|---|---|---|
Apache Cayenne | Java | Open source | Apache License 2.0 | 4.2 [1] / 2023-05-16; 9 months ago | |
Dapper | .NET 4.0 | Open source | Apache License 2.0 | 1.8 NuGet | |
DataNucleus | Java | Open source | Apache License 2 | 4.1.0.RELEASE / May 19, 2015 | JDO |
DBIx::Class | Perl | Open source | Artistic License 1.0 & GPL | 0.082843 / May 17, 2022 [2] | |
Django | Python | Open source | BSD licenses | 5.0.2 [3] 6 February 2024; 30 days ago | |
Doctrine | PHP | Open source | MIT | 2.14.1 / January 16, 2023 | |
EclipseLink | Java | Open source | Eclipse Public License Version 1.0 (EPL) and Eclipse Distribution License Version 1.0 (EDL) | 2.4.2 / July 4, 2013 | JPA 2.0 |
Entity Framework Core | .NET | Open Source | Apache License 2.0 | 6.0 / November 10, 2021 | |
Hibernate | Java | Open source | GNU Lesser General Public License | 5.4.31 / April 30, 2021 | JPA 2.0 |
MyBatis/iBATIS | Cross-platform | Open source | Apache License 2.0 | ||
jOOQ | Java | Open source | Apache License 2.0 and Proprietary License | 3.2.0 / October 9, 2013 | |
Microsoft ADO.NET Entity Framework | .NET Framework 4.5 | Part of .NET 4.5 | Apache License 2.0 [4] | v6.0 (2014) | |
nHibernate | .NET Framework 4.6.1 | Open source | GNU Lesser General Public License | 5.3.12 (2022-05-01) | |
RedBeanPHP | PHP | Open source | BSD License | 2023-03-17; 11 months ago5.7.4 [5] | |
SQLAlchemy | Python | Open source | MIT License | 2024-02-13; 23 days ago2.0.27 [6] | |
SQLObject | Python | Open source | LGPL | 2023-08-09 / 3.10.2 | |
Skipper | PHP | Commercial | Proprietary software | 3.0 | |
Storm | Python | Open source | LGPL 2.1 | 0.20 / June 28, 2013 | |
TopLink | Java | Commercial | Oracle License | 10g | JPA |
An object database or object-oriented database is a database management system in which information is represented in the form of objects as used in object-oriented programming. Object databases are different from relational databases which are table-oriented. A third type, object–relational databases, is a hybrid of both approaches. Object databases have been considered since the early 1980s.
Object–relational mapping in computer science is a programming technique for converting data between a relational database and the heap of an object-oriented programming language. This creates, in effect, a virtual object database that can be used from within the programming language.
Object–role modeling (ORM) is used to model the semantics of a universe of discourse. ORM is often used for data modeling and software engineering.
In software, a data access object (DAO) is a pattern that provides an abstract interface to some type of database or other persistence mechanism. By mapping application calls to the persistence layer, the DAO provides data operations without exposing database details. This isolation supports the single responsibility principle. It separates the data access the application needs, in terms of domain-specific objects and data types, from how these needs can be satisfied with a specific DBMS.
Hibernate ORM is an object–relational mapping tool for the Java programming language. It provides a framework for mapping an object-oriented domain model to a relational database. Hibernate handles object–relational impedance mismatch problems by replacing direct, persistent database accesses with high-level object handling functions.
ADO.NET is a data access technology from the Microsoft .NET Framework that provides communication between relational and non-relational systems through a common set of components. ADO.NET is a set of computer software components that programmers can use to access data and data services from a database. It is a part of the base class library that is included with the Microsoft .NET Framework. It is commonly used by programmers to access and modify data stored in relational database systems, though it can also access data in non-relational data sources. ADO.NET is sometimes considered an evolution of ActiveX Data Objects (ADO) technology, but was changed so extensively that it can be considered an entirely new product.
Django is a free and open-source, Python-based web framework that runs on a web server. It follows the model–template–views (MTV) architectural pattern. It is maintained by the Django Software Foundation (DSF), an independent organization established in the US as a 501(c)(3) non-profit.
Catalyst is an open source web application framework written in Perl, that closely follows the model–view–controller (MVC) architecture, and supports a number of experimental web patterns. It is written using Moose, a modern object system for Perl. Its design is heavily inspired by frameworks such as Ruby on Rails, Maypole, and Spring.
NHibernate is an object–relational mapping (ORM) solution for the Microsoft .NET platform. It provides a framework for mapping an object-oriented domain model to a traditional relational database. Its purpose is to relieve the developer from a significant portion of relational data persistence-related programming tasks. NHibernate is free and open-source software that is distributed under the GNU Lesser General Public License. NHibernate is a port of Hibernate.
CakePHP is an open-source web framework. It follows the model–view–controller (MVC) approach and is written in PHP, modeled after the concepts of Ruby on Rails, and distributed under the MIT License.
iBATIS is a persistence framework which automates the mapping between SQL databases and objects in Java, .NET, and Ruby on Rails. In Java, the objects are POJOs. The mappings are decoupled from the application logic by packaging the SQL statements in XML configuration files. The result is a significant reduction in the amount of code that a developer needs to access a relational database using lower level APIs like JDBC and ODBC.
Jakarta Persistence is a Jakarta EE application programming interface specification that describes the management of relational data in enterprise Java applications.
This is a comparison of notable web frameworks, software used to build and deploy web applications.
Entity Framework (EF) is an open source object–relational mapping (ORM) framework for ADO.NET. It was originally shipped as an integral part of .NET Framework, however starting with Entity Framework version 6.0 it has been delivered separately from the .NET Framework.
Propel is a free, open-source (MIT) object–relational mapping toolkit written in PHP. It is also an integral part of the PHP framework Symfony and was the default ORM up to, and including version 1.2.
Quick Objects is an object–relational mapping tool for the Microsoft .NET Framework, a built in framework for business logic and validation. The architecture for Quick Objects differs from other ORM tools. The focus of Quick Objects is to provide the advantages of code reuse, code generation and object relational mapping in a single tool set.
Dapper is an object–relational mapping (ORM) product for the Microsoft .NET platform. It provides a framework for mapping an object-oriented domain model to a traditional relational database. Its purpose is to relieve the developer from a significant portion of relational data persistence-related programming tasks. Dapper is free as open source software that is distributed under dual license, either the Apache License 2.0 or the MIT License.
Skipper is a visualization tool and code/schema generator for PHP ORM frameworks like Doctrine2, Doctrine, Propel, and CakePHP, which are used to create database abstraction layer. Skipper is developed by Czech company Inventic, s.r.o. based in Brno, and was known as ORM Designer prior to rebranding in 2014.