gpt4 book ai didi

java - 为现有项目设计 DAO 模型

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:13:49 25 4
gpt4 key购买 nike

我见过的大多数 DAO 示例都包含仅涉及一个表的简单查询。

我正在重构一个没有 DAO 的项目,该项目有大量使用多个表的 SQL 查询。我的问题是如何最好地设计 DAO 模型?在下面的示例中,我可以创建一个涵盖每个特定查询的对象。但是我不确定这是否是好的做法。例如用一个对象代表每个数据库表是否更好?

CustomerPaymentDAO 来覆盖这个查询:

select
a.username,
p.creation_date,
p.amount,
c.card_type
from
account a,
payment p,
payment_type t,
payment_card c
where
...

CustomerPurchaseDAO 来覆盖这个查询:

select
a.username,
i.name,
i.cost,
c.name,
v.value
from
account a,
item i,
category c,
voucher v
where
...

最佳答案

一般来说,有两种选择:

  1. 创建与每个表对应的实体并指定必要的关系(多对多、多对一、一对一)。

  2. 在数据库中为每个查询创建一个 View ,并在每个 View 的基础上创建实体(在您的示例中 - 两个 View + 两个实体)。

第二种情况适用于只读对象。如果您需要创建/更新/删除实体,那么您需要创建一个对应于每个单独表的实体。

关于java - 为现有项目设计 DAO 模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10000605/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com