这是一个非常简单的问题,适用于使用 java 编程 Web 界面。说,我没有使用 ORM(即使我正在使用),假设我的应用程序中有这个 Car (id,name, color, type, blah, blah) 实体,我有一个 CAR 表在数据库中表示该实体。所以,假设我只需要更新一堆汽车上的一部分字段,我知道典型的流程是:
- DAO 类 (CarDAO) - getCarsForUpdate()
- 遍历所有 Car 对象,仅更新颜色以显示绿色或其他内容。
- 另一个对 updateCars(Cars cars) 的 DAO 调用。
现在,对于一个简单的选择和更新查询来说,这不是在拐弯抹角吗?在上面的第一步中,我将从数据库中检索整个对象数据:“ select id,name,color,type,blah,blah.. where ..from CAR ”而不是“ select id,color from CAR where 。 …… ”。那么为什么我在发布 DAO 调用时要检索那些额外的字段,我永远不会使用“颜色”以外的任何东西?这同样适用于最后一步 3。或者,假设我只查询 id 和颜色(选择 id、color)并创建一个仅填充 id 和颜色的汽车对象 - 这完全可以,不是吗?Car 对象还是贫血?
这一切(面向对象)看起来是不是有点假?