Knowledge (XXG)

Data mapper pattern

Source 📝

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

Index

software engineering
architectural pattern
Martin Fowler
Data Access Layer
relational database
Data Access Objects
frameworks
MyBatis
Hibernate
NHibernate
Bookshelf.js
TypeORM
Massive.js
Prisma
Objection.js
MikroORM
LDkit
Atlas
Doctrine2
Cycle
CakePHP
DBIx
SQLAlchemy
mincePy
DataMapper
ROM
Ecto
Active record pattern
Object-relational mapping
Patterns of enterprise application architecture

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.