如果不使用 ORM,以 OOP 方式设计应用程序有什么意义?

What's the point of designing an application in an OOP way if an ORM is not used?

假设在应用程序中有特定的 类 说 'Student' 'Location' 'City' 等等

class Student {
String name;
int age;
Location location;
}

class Location {
City city;
String country;
}

class City {
String cityName;
int cityCode;
}

这只是一个示例,显示 类(对象) 包含对其他 类.

的引用

所以现在如果使用ORM(如hibernate),这种数据可以直接保存:

save(student);

鉴于对象 'student' 已正确定义(就像它包含数据)。 现在这很简单方便。

但是说我们出于某些原因没有使用ORM,那么

1.We从客户端获取数据

2.Fill 包含用户数据的对象(或类似的东西)(所有这些都发生在内存中)

3.Now 我们再次分解数据以将其保存到数据库(使用 SQL 查询) 例如包含

之类的查询
  1. student.location.city.cityName
  2. student.location.city.cityCode 等等

现在这不是为了做 it.like...

而做面向对象的事情吗

1.Creating 内存中的对象。

2.Breaking 在保存到数据库之前关闭对象。

这件事让我困惑了很久。非常感谢任何见解或帮助:)

  1. 您的面向对象编程语言使用对象。
  2. 您的数据库使用关系数据。

由于这种不匹配,您将始终必须将对象映射到关系数据,即使您不选择使用 ORM 工具也是如此。

您可能对 Active-record pattern 感兴趣。每行都会有一个关联的对象引用,但您必须自己解决对象关联(例如,多对一,一对多)。