最近在做技术选型,想要引入一些新的开发语言,开发技术到技术团队。大众编程语言在 WEB 方面的稳定性,已经被人所熟知了。但是数据库版本控制方面,每个程序设计语言做的深度和稳定性都有所区别。数据库版本控制和 ORM 密切相关。而…

提到 ORM,就不得不聊聊 ActiveRecordDataMapper

DataMapper

DataMapper 是一种 ORM’s pattern。

一般,使用 DataMapper,你会将所有的查询方法写到 repositories里面。所有的数据操作都会在repositories中进行。例如增加,加载,删除,查询。使用DataMapper的时候,entity 会显得有些“呆滞”。一般情况下,定义好属性和一点简单的方法,不会频繁的 entity 进行操作了。

所以,大多数情况下,程序员使用 repositories 与数据库进行交互。

这种模式常见于Spring JPA

ActiveRecord

ActiveRecord 模式中,model 的属性和方法,全都在一起定义。

所以,在大多数情况下,程序员直接使用 model与数据库进行交互。

这种模式常见于 DjangoRuby on rails

我应该选择哪一种?

选择哪一种 ORM pattern 取决当前的应用环境。

  • Data Mapper 因为其分离性,在大型应用的开发中往往会更有效率
  • Active Record 使得编写 ORM 变得很容易,因此在小型应用中很受欢迎。Simplicity 往往是可维护性的一个关键指标。