Istilah ORM tidak asing bagi programmer terutama yang memakai OOP sebagai paradigma pemrogramannya. Bagi anda yang baru masih belajar, terkadang bingung dengan istilah ini. Apakah itu ORM?
ORM merupakan kependekan dari Object Relational Mapping, sebuah teknik pemrograman yang memetakan sebuah objek dengan database. ORM ini akan membantu menjadi ‘jembatan’ antara objek yang didefinisikan dalam kode program dengan database, bagaimana objek itu disimpan, diambil, dihapus dan sebagainya. Dengan ORM ini, programmer dibantu untuk melakukan aksi-aksi yang diperlukan terkait komunikasi objek ketika program dijalankan dengan database seperti menyimpan objek, mengambil data objek dari database kemudian ditampilkan, menghapus objek, mengubah objek dan sebagainya.
Sebagai contoh penggunaan adalah ketika ada definisi data berupa person yang memiliki atribut id dan nama. Di database didefinisikan sebuah tabel dengan kolom id dan nama. Dengan tanpa menggunakan ORM, untuk menyimpan objek itu ke database adalah dengan menjalan perintah SQL :
“INSERT INTO persons (id, nama) values (’1′,’wisnu manupraba’)”.
Dengan menggunakan ORM, perintah SQL itu akan digantikan dengan fungsi misalkan save (tergantung fungsi yang disediakan oleh pustaka ORM yang digunakan), sehingga pemanggilannya adalah :
Person person = new Person (1, “Wisnu Manupraba”);person.insert();
ORM lah yang akan memetakan fungsi insert() sama dengan perintah SQL ‘INSERT INTO….”.
Ada banyak pustaka ORM yang tersedia saat ini, di berbagai bahasa. Di Java misalkan ada Hibernate dan MyIbatis (dulu namanya IBatis). Di PHP, berbagai framework seperti CakePHP, CodeIgniter, Yii dan sebagainya menyediakan ORMnya sendiri-sendiri.
Berikut adalah daftar ORM untuk masing-masing bahasa (tidak semuanya ada di sini dan yang ada di sini tidak semuanya masih bisa digunakan, beberapa sudah tidak digunakan lagi).
C++
Coldfusion
- Transfer ORM and object-relational mapper for CFML
Cocoa
- Core Data, object graph management framework with several persistent stores. Ships with Mac OS X and iPhone OS.
Delphi
- Bold for Delphi
- ECO (by Capable Objects) available for Delphi 2007 and Delphi Prism 2010
- Synopse ORM
Groovy
Java
- Cayenne, Apache, open source for java
- Kodo, commercial implementation of both the JDO and JPA API.
- Torque, an object-relational mapper for Java
- Carbonado, open source framework, backed by Berkeley DB or JDBC
- Ebean, open source ORM Framework
- EclipseLink, Eclipse Persistence Platform
- Enterprise Objects Framework, Mac OS X/Java, part of Apple WebObjects
- Hibernate, open source ORM Framework, widely used
- iBATIS, maintained by ASF, and with .NET port
- Java Data Objects (JDO)
- Java Persistence API (JPA)
- DataNucleus, open source JDO and JPA implementation
- JPOX, open source JDO 2 reference implementation
- Object Relational Bridge (Apache OJB), an object-relational mapper for Java
- OpenJPA, Apache, open source, supports JPA API
- TopLink by Oracle
- QuickDB ORM, Open Source ORM Framework (GNU LGPL)
- NetBeans IDE, Apache, Glassfish, Opensource, Struts,Spring,Hibernate Frame works (for Windows and Linux)
- Sobat, simple hibernate-like ORM.
.NET
- ADO.NET Entity Framework, Microsoft’s ORM, part of .Net 4.0
- AgileFx, open source
- Base One Foundation Component Library, free or commercial
- Devart LinqConnect, commercial, an ORM solution for Oracle, MySQL, PostgreSQL, and SQLite
- Castle ActiveRecord, ActiveRecord for .NET, open source
- Database Objects .NET, Open Source
- DataObjects.NET, GPL and commercial
- DevForce, commercial, N-Tier
- ECO, Commercial but free for use up to 12 classes
- EntitySpaces, commercial
- Habanero, Free open source Enterprise application framework with a Free Code Generation Tool
- iBATIS, Free open source
- LINQ to SQL, Free, .NET Framework component
- Lightspeed, free or commercial
- LLBLGen Pro, commercial
- Neo, open source
- NHibernate, open source
- nHydrate, open source
- ObjectMapper .NET, GPL and commercial license
- OpenAccess ORM, free or commercial
- Persistor.NET, free or commercial
- Quick Objects, free or commercial
- SubSonic, open source
Perl
PHP
- Axon, ORM plug-in for the Fat-Free Framework. PDO-based and requires no configuration (GPL3).
- CakePHP, ORM and framework for PHP5, open source (scalars, arrays, objects). Based on database introspection. No class extending or code generation
- Doctrine, Open Source ORM for PHP 5.2.3, free software (GNU LGPL)
- PdoMap, Open Source ORM for PHP 5.x, inspired by Hibernate, free software (GNU LGPL)
- Propel, ORM and Query-Toolkit for PHP 5, inspired by Apache Torque, free software (MIT)
- Rocks, Open Source ORM for PHP 5.1 plus, free for non-commercial use (GPL)
- Qcodo, ORM and framework for PHP5, open source
- Redbean, ORM layer for PHP 5 that creates and maintains tables on the fly (BSD)
- Sphorm, ORM for PHP 5, free software, using Visitor pattern, Binary tree and Fluent Pattern. [1]
- Torpor, Open Source ORM for PHP 5.1 plus, free software (MIT), database and OS agnostic
Python
- Django, (ORM is included in Django framework) open source
- SQLAlchemy, open source
- SQLObject, open source
- Storm, open source (LGPL 2.1) developed at Canonical Ltd.
- Tryton, Open Source
Ruby
- ActiveRecord, part of Ruby on Rails (open source)
- Datamapper
- iBATIS, Free open source
- Sequel, free, open source
VB6
- DatabaseObjects, Open Source
Kesimpulannya adalah salah satu kegunaan ORM mempermudah programmer agar tidak perlu lagi menuliskan perintah-perintah SQL ketika memerlukan koneksi dengan database, tetapi cukup dengan menggunakan fungsi-fungsi yang sudah disediakan oleh ORM tersebut.