我已经阅读了两篇文章,但它让我更加困惑。我试图找到差异(和相似之处),但我无法说服自己。它们都是业务逻辑和数据库之间的中间层。是否存在差异或是否相同?
答案 0 :(得分:3)
ORM(对象/关系映射器):
int
,string
等语言提供的基本数据类型中的值。DAL(数据访问层):
答案 1 :(得分:1)
在Java中,当一个引用对象关系映射时最常见的情况是将表映射到Java对象中。一个非常流行的对象关系映射器是Hibernate。让我们假设你有一排汽车的桌子。当然它有很多列,如Year,Make,Model等.ORM会将此表行映射到Car.java 类,其数据成员对应于列这一行。
映射发生在数据访问层内,数据访问层由执行转换的类组成。此外,您可能拥有提供某些Java对象的服务类,这些Java对象依赖于某些条件(查询)。一个例子是让我们说你有一个用户的应用程序。您可能有一个带有getAllUsersSortedByLastName()类的UserService.java类来执行该操作。这将涉及利用活动数据库连接,执行正确查询以获取用户行,将这些用户行放入用户 Java对象,将这些User.java对象放入一个List,最后在返回之前根据需要处理该列表。执行我所描述的内容的能力都将在您的应用程序的数据访问层中。您可以使用ORM来执行表行和Java对象之间的映射,反之亦然。
答案 2 :(得分:1)
ORM是一种通用编程方法,主要围绕处理系统中的数据,以一种方式呈现它们(并允许您使用它们)作为您选择的编程语言中的对象。即使数据来自与您选择的编程语言无关的数据源。通过对象“胶合代码”与数据交互的抽象概念是ORM。
另一方面,DAL只是编程语言提供的整个事物集合的名称,这使得处理存储数据变得更容易。对于谈论“处理存储数据的所有API”来说,它实际上是一个方便的术语。并将它们结合在一起:“所选编程语言的数据访问层可能使用对象关系映射。”