我對DTO包含的數據有點困惑。例如,假設我們有兩個表格:用戶和訂單。 Orders表包含id_users,這是用戶表的外鍵。dao設計模式中的數據傳輸對象
很明顯,我有兩個DAO,MysqlUserDao和MysqlOrdersDao,具有crud操作,以及兩個傳遞對象User和Order,其中存儲了jdbc行集。
如果我想獲得用戶併爲每個用戶自己的所有訂單,我應該怎麼辦名單:
1)在我MysqlUserDao創建一個函數:getUsersAndOrders(從用戶選擇的用戶,訂單。加入訂單) 而我的用戶DTO應該有一個OrderList屬性,我在哪裏下訂單?
2)在我的MysqlUserDao中,我創建了一個函數getAllUsers(select * from users), 和foreach用戶我使用MysqlOrdersDao函數getOrder(id_user);
而且一些澄清:
1)對於每一個在數據庫中,我需要創建一個DAO對象表?或僅僅爲複雜的? 例如產品和圖像,應該是2道還是隻有一道?
2)DTO對象應該只有性能和setter的getter,或者也可以有其他的方法,如convertEuroToUsd等
感謝
在你的例子中,我理解OrderManager的目的,但是如果我有一個簡單的DAO只是粗暴的操作,那麼管理器是毫無意義的,我想。管理器中的插入函數如下所示:'public insertOrder(OrderDto o){oDao.insert(o)); ''。通常,傳輸對象應包含所有其他處於連接關係的DTO?像orm一樣 – Catalin
@Catalin「通常一個傳輸對象應該包含所有其他的處於連接關係的DTO?」。我會說這取決於,我們不能定義這樣的強大規則,有很多的性能(如果你不加入,意味着你需要循環和執行許多其他的選擇)和語義(是用戶一個秩序的內在組成部分? )您需要考慮的問題。 – Rafa