【发布时间】:2018-09-05 02:46:21
【问题描述】:
我已经阅读了这两篇文章,但这让我更加困惑。我试图找出差异(和相似之处),但无法说服自己。它们都是业务逻辑和数据库之间的中间层。有区别还是一样?
【问题讨论】:
标签: orm data-access-layer
我已经阅读了这两篇文章,但这让我更加困惑。我试图找出差异(和相似之处),但无法说服自己。它们都是业务逻辑和数据库之间的中间层。有区别还是一样?
【问题讨论】:
标签: orm data-access-layer
ORM(对象/关系映射器):
int、string 等语言提供的基本数据类型的值。DAL(数据访问层):
【讨论】:
ORM 是一种通用的编程方法,其中心是处理系统中的数据,以一种将它们呈现(并允许您使用它们)作为您选择的编程语言中的对象的方式。即使数据来自与您选择的编程语言无关的来源。通过对象“单板”与数据交互的抽象概念是 ORM。
另一方面,DAL 只是编程语言提供的整个集合的名称,它使处理存储的数据变得更容易。它实际上是一个方便的术语,用于谈论“所有用于处理存储数据的 API”。
并将其联系在一起:“您选择的编程语言的数据访问层可以使用对象-关系映射。”
【讨论】:
在 Java 中,当提到对象关系映射时,最常见的场景是将表 映射 到 Java 对象的行为。一种非常流行的对象关系映射器是 Hibernate。假设您有一个汽车的表格行。当然,它有很多列,例如 Year、Make、Model 等。ORM 会将此表 row 映射到 Car.java class 中,其中的数据成员对应于这些列行。
映射发生在数据访问层内,该层由执行转换的类组成。此外,您可能拥有根据特定标准(查询)提供特定 Java 对象的服务类。一个例子是假设您有一个包含用户的应用程序。您可能会有一个带有 getAllUsersSortedByLastName() 类的 UserService.java 类来执行该操作。这将涉及利用活动数据库连接,执行适当的查询以获取用户行,将这些用户 rows 放入用户 Java 对象,将这些 User.java 对象放入一个列表,如果需要,最后在返回之前处理该列表。执行我所描述的操作的能力都在应用程序的数据访问层中。您可以使用 ORM 来执行表行和 Java 对象之间的映射,反之亦然。
【讨论】: