Jump to content

DataMapper

From Wikipedia, the free encyclopedia
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

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).[1] The DataMapper 2 project was renamed before launch and was released as Ruby Object Mapper (ROM) in August 2013.[2]

Some features of DataMapper:[3]

  • 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.[4] As a result, DataMapper adapters have been built for other non-SQL databases, such as CouchDB,[5] Apache Solr,[6] and webservices such as Salesforce.com.[7]

References

  1. ^ "datamapper wiki: Roadmap". GitHub.
  2. ^ "Where is DataMapper 2?". Google Groups.
  3. ^ "DataMapper - Why DataMapper?". Archived from the original on 2010-10-08. Retrieved 2010-10-12.
  4. ^ Fowler, Martin; David Rice; Matthew Foemmel; Edward Hieatt; Robert Mee; Randy Stafford (November 2002). Patterns of Enterprise Application Architecture. Addison-Wesley. ISBN 0-321-12742-0.
  5. ^ "Kabari's dm-couchdb-adapter at master - GitHub". GitHub. Archived from the original on 2009-08-27. Retrieved 2016-01-02.
  6. ^ "Lritter/Dm-solr-adapter". GitHub. 13 August 2019.
  7. ^ "Dm-salesforce". GitHub. 22 February 2020.