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]   OOjs UI icon edit-ltr-progressive.svg / 2023-05-16; 9 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.0.2 [3]   OOjs UI icon edit-ltr-progressive.svg 6 February 2024; 30 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; 11 months ago5.7.4 [5]   OOjs UI icon edit-ltr-progressive.svg
SQLAlchemy Python Open source MIT License 2024-02-13; 23 days ago2.0.27 [6]   OOjs UI icon edit-ltr-progressive.svg
SQLObject Python Open source LGPL 2023-08-09 / 3.10.2
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

<span class="mw-page-title-main">Object database</span> Type of database management system

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.

<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>

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.

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

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.

<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 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.

References

  1. "Release 4.2". 16 May 2023. Retrieved 26 May 2023.
  2. "DBIx::Class – Extensible and flexible object <-> relational mapper. - metacpan.org". metacpan.org. Retrieved 16 January 2017.
  3. "Release 5.0.2". 6 February 2024. Retrieved 19 February 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.27". 13 February 2024. Retrieved 20 February 2024.