我有一個設(shè)計(jì)層面的問題。在我們的應(yīng)用程序中使用 DAO 或 DTO 之間存在爭論。我瀏覽了現(xiàn)有的帖子,了解到 DTO 僅在表示復(fù)雜對象時使用。但是,我的視圖可以僅使用對我的表的連接操作來生成。數(shù)據(jù)庫:表格:game
game_details (has a primary key of Game) - There will be at max 4 rows for a given game_id我的視圖包含表 game 和 game_details 中的所有列。這 4 行中的每一行都將顯示在不同的選項(xiàng)卡中。對于視圖中的每次更改,有 3/4 的概率更新兩個表?,F(xiàn)在最好的方法是什么。1. 將整個視圖包裝為 DTO。2. 或者使用 GameDetails 模型對象列表定義我的模式 Game。如果我們采用第二種方法,我們的數(shù)據(jù)持久化方式會有任何變化。
1 回答

MYYA
TA貢獻(xiàn)1868條經(jīng)驗(yàn) 獲得超4個贊
數(shù)據(jù)訪問對象就是這樣做的。他們?nèi)绾巫龅竭@一點(diǎn)取決于您使用的技術(shù);我喜歡 Hibernate 進(jìn)行 CRUD 操作。
我使用術(shù)語數(shù)據(jù)傳輸對象來指代描述我的 API 的對象。因此,我將定義與我在 RESTful 服務(wù)中傳遞的 JSON 相匹配的 DTO。
我使用 DTO和實(shí)體對象將 API 與數(shù)據(jù)庫分離。它涉及更多的處理,但我發(fā)現(xiàn)額外的努力是值得的。
如何定義 DTO 取決于您,取決于您如何描述在服務(wù) API 中傳遞的數(shù)據(jù)。使用 JDBC 填充扁平結(jié)構(gòu)更簡單;然而,它通常包含大量冗余數(shù)據(jù),需要更多的邏輯來處理。結(jié)構(gòu)化方法,其中 header 包含詳細(xì)信息列表,可能需要更多的工作來填充,但它避免了冗余并且更容易使用。
添加回答
舉報(bào)
0/150
提交
取消