DataMapper
DataMapper is an object-relational mapper library written in Ruby that follows the active record pattern even though the name implies it follows the data mapper pattern. While DataMapper 1 may not have achieved total decoupling between object and database suggested by the data mapper pattern, it appears DataMapper 2 intended to change this ("a la" Virtus, a library adapted from DataMapper). The DataMapper 2 project was renamed before launch and was released as Ruby Object Mapper (ROM) in August 2013.

Some features of DataMapper:
* Eager loading of child associations to avoid (N+1) queries
* Lazy loading of select properties, e.g., larger fields
* Query chaining, and not evaluating the query until absolutely necessary (using a lazy array implementation)
* An API not too heavily oriented to SQL databases

DataMapper was designed to be a more abstract ORM, not strictly SQL, based on Martin Fowler's enterprise pattern. As a result, DataMapper adapters have been built for other non-SQL databases, such as CouchDB, Apache Solr, and webservices such as Salesforce.com.
Q58748
object-relational mapper
Concept
Q188860
library
Concept
Q161053
Ruby
MEDIA
Q344181
active record pattern
Concept
Q5227311
data mapper pattern
Concept
Q74894
Martin Fowler
PER
Q1136882
CouchDB
MEDIA
Q2858103
Apache Solr
MEDIA
Q941127
Salesforce.com
ORG
Q16954568
DataMapper
MEDIA
Q16954568
DataMapper
MEDIA
Q16954568
DataMapper
MEDIA
Q16954568
DataMapper
MEDIA
Q16954568
DataMapper
MEDIA
Q16954568
DataMapper
MEDIA
Q16954568
DataMapper
MEDIA
Q16954568
DataMapper
MEDIA
2013-08-01T00:00:00Z^^http://www.w3.org/2001/XMLSchema#dateTime
August 2013
DATE
+1^^http://www.w3.org/2001/XMLSchema#decimal
1
NUMBER
+2^^http://www.w3.org/2001/XMLSchema#decimal
2
NUMBER
+2^^http://www.w3.org/2001/XMLSchema#decimal
2
NUMBER
++1^^http://www.w3.org/2001/XMLSchema#decimal
+1
NUMBER
instance of
programming language