47:) and an in-memory data representation (the domain layer). The goal of the pattern is to keep the in-memory representation and the persistent data store independent of each other and the data mapper itself. This is useful when one needs to model and enforce strict business processes on the data in the domain layer that do not map neatly to the persistent data store. The layer is composed of one or more mappers (or
36:. The interface of an object conforming to this pattern would include functions such as Create, Read, Update, and Delete, that operate on objects that represent domain entity types in a data store.
51:), performing the data transfer. Mapper implementations vary in scope. Generic mappers will handle many different domain entity types; dedicated mappers will handle one or a few.
394:
320:
25:
276:
389:
29:
328:
266:
241:
292:
208:
library (Actually this library implemented the Active Record design pattern, its successor, DataMapper 2 (now
235:
78:
369:
17:
44:
60:
48:
272:
40:
324:
149:
43:
that performs bidirectional transfer of data between a persistent data store (often a
383:
186:
82:
192:
118:
143:
174:
72:
222:
354:
146:
ORM (data mapper, table data gateway, query builder, and PDO wrapper)
212:) aimed to actually implement the design pattern it was named after)
161:
152:
Object
Relational Mapper (ORM) and the Database Abstraction Layer
349:
155:
293:"What's the difference between Active Record and Data Mapper?"
101:
95:
205:
113:
107:
321:"Doctrine2 and ActiveRecord – Doctrine2"
164:
ORM (PHP DataMapper ORM, query builder, and PDO wrapper)
124:
246:
Pages displaying short descriptions of redirect targets
59:
Implementations of the concept can be found in various
306:
209:
130:
158:ORM (PHP DataMapper ORM and Data Modelling Engine)
268:Patterns of enterprise application architecture
34:Patterns of Enterprise Application Architecture
133:Object Graph Mapper (OGM) for RDF data sources
8:
395:Architectural pattern (computer science)
370:"stack overflow – DBIx"
257:
238: – Concept in software engineering
7:
350:"Cycle ORM – Cycle"
307:"Atlas ORM – Atlas"
63:for many programming environments.
14:
1:
244: – Programming technique
411:
242:Object-relational mapping
390:Software design patterns
265:Fowler, Martin (2003).
85:) persistence framework
236:Active record pattern
225:persistence framework
75:persistence framework
26:architectural pattern
90:Node.js / TypeScript
18:software engineering
49:Data Access Objects
45:relational database
39:A Data Mapper is a
22:data mapper pattern
271:. Addison-Wesley.
28:. It was named by
278:978-0-321-12742-6
41:Data Access Layer
32:in his 2003 book
402:
374:
373:
366:
360:
359:
346:
340:
339:
337:
336:
327:. Archived from
317:
311:
310:
303:
297:
296:
289:
283:
282:
262:
247:
410:
409:
405:
404:
403:
401:
400:
399:
380:
379:
378:
377:
368:
367:
363:
348:
347:
343:
334:
332:
319:
318:
314:
305:
304:
300:
291:
290:
286:
279:
264:
263:
259:
254:
245:
232:
219:
202:
183:
171:
140:
92:
69:
57:
55:Implementations
12:
11:
5:
408:
406:
398:
397:
392:
382:
381:
376:
375:
361:
341:
312:
298:
284:
277:
256:
255:
253:
250:
249:
248:
239:
231:
228:
227:
226:
218:
215:
214:
213:
201:
198:
197:
196:
190:
182:
179:
178:
177:
170:
167:
166:
165:
159:
153:
147:
139:
136:
135:
134:
128:
122:
116:
111:
105:
99:
91:
88:
87:
86:
76:
68:
65:
56:
53:
13:
10:
9:
6:
4:
3:
2:
407:
396:
393:
391:
388:
387:
385:
371:
365:
362:
357:
356:
351:
345:
342:
331:on 2013-07-21
330:
326:
322:
316:
313:
308:
302:
299:
294:
288:
285:
280:
274:
270:
269:
261:
258:
251:
243:
240:
237:
234:
233:
229:
224:
221:
220:
216:
211:
207:
204:
203:
199:
194:
191:
188:
185:
184:
180:
176:
173:
172:
168:
163:
160:
157:
154:
151:
148:
145:
142:
141:
137:
132:
129:
126:
123:
120:
117:
115:
112:
109:
106:
103:
100:
97:
94:
93:
89:
84:
80:
77:
74:
71:
70:
66:
64:
62:
54:
52:
50:
46:
42:
37:
35:
31:
30:Martin Fowler
27:
23:
19:
364:
353:
344:
333:. Retrieved
329:the original
315:
301:
287:
267:
260:
119:Objection.js
96:Bookshelf.js
58:
38:
33:
21:
15:
384:Categories
335:2013-04-02
252:References
206:DataMapper
187:SQLAlchemy
108:Massive.js
83:NHibernate
61:frameworks
325:Doctrine2
150:Doctrine2
79:Hibernate
67:Java/.NET
230:See also
125:MikroORM
195:library
193:mincePy
189:library
162:CakePHP
127:library
121:library
110:library
104:library
102:TypeORM
98:library
73:MyBatis
355:GitHub
275:
217:Elixir
181:Python
114:Prisma
24:is an
20:, the
156:Cycle
144:Atlas
131:LDkit
273:ISBN
223:Ecto
200:Ruby
175:DBIx
169:Perl
210:ROM
138:PHP
16:In
386::
352:.
323:.
372:.
358:.
338:.
309:.
295:.
281:.
81:(
Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.