Comparison of object–relational mapping software

Last updated

This table shows a comparison of notable and available ORM software products.

Contents

SoftwarePlatformAvailabilityLicenseVersionPersistence Specification
Apache Cayenne Java Open source Apache License 2.04.2.1 [1]   OOjs UI icon edit-ltr-progressive.svg / 2024-06-14; 6 months ago
Dapper .NET 4.0 Open source Apache License 2.01.8 NuGet
DataNucleus Java Open source Apache License 24.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.1.3 [3]   OOjs UI icon edit-ltr-progressive.svg 5 November 2024; 45 days ago
Doctrine PHP Open source MIT2.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.06.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 License3.2.0 / October 9, 2013
Microsoft ADO.NET Entity Framework .NET Framework 4.5Part 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 License2023-03-17; 21 months ago5.7.4 [5]   OOjs UI icon edit-ltr-progressive.svg
SQLAlchemy Python Open source MIT License 2024-10-15; 2 months ago2.0.36 [6]   OOjs UI icon edit-ltr-progressive.svg
SQLObject Python Open source LGPL 2024-12-20 / 3.12.0
Skipper PHPCommercial Proprietary software 3.0
Storm Python Open source LGPL 2.10.20 / June 28, 2013
TopLink Java CommercialOracle License10g JPA

See also

Related Research Articles

Object–relational mapping in computer science is a programming technique for converting data between a relational database and the memory of an object-oriented programming language. This creates, in effect, a virtual object database that can be used from within the programming language.

<span class="mw-page-title-main">Object–role modeling</span> Programming technique

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.

<span class="mw-page-title-main">Django (web framework)</span> Python web framework

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.

<span class="mw-page-title-main">Catalyst (software)</span> Open-source web application framework

Catalyst is an open-source web application framework written in Perl. It 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.

<span class="mw-page-title-main">NHibernate</span> Object–relational mapping solution

NHibernate is a port of the Hibernate object–relational mapping (ORM) tool 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.

<span class="mw-page-title-main">CakePHP</span> Open-source web framework in PHP

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, also known as JPA 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.

<span class="mw-page-title-main">SQLAlchemy</span> SQL toolkit and object-relational mapper

SQLAlchemy is an open-source Python library that provides an SQL toolkit and an Object Relational Mapper (ORM) for database interactions. It allows developers to work with databases using Python objects, enabling efficient and flexible database access.

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.

<span class="mw-page-title-main">Apache Cayenne</span> Open-source persistence framework

Apache Cayenne is an open source persistence framework licensed under the Apache License, providing object-relational mapping (ORM) and remoting services. Cayenne binds one or more database schemas directly to Java objects, managing atomic commit and rollbacks, SQL generation, joins, sequences, and more. With Cayenne's Remote Object Persistence, those Java objects can even be persisted out to clients via Web Services. Or, with native XML serialization, objects can be further persisted to non-Java clients—such as an Ajax-capable browser.

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.

References

  1. "Release 4.2.1". 14 June 2024. Retrieved 20 June 2024.
  2. "DBIx::Class – Extensible and flexible object <-> relational mapper. - metacpan.org". metacpan.org. Retrieved 16 January 2017.
  3. "Release 5.1.3". 5 November 2024. Retrieved 13 November 2024.
  4. "Entity Framework". codeplex.com. Retrieved 16 January 2017.
  5. "Release 5.7.4". 17 March 2023. Retrieved 20 March 2023.
  6. "Release 2.0.36". 15 October 2024. Retrieved 27 October 2024.