我正在構建DataAccess層到數據庫,建議使用哪種數據結構來傳遞和返回集合?數據訪問層的推薦數據結構
回答
我使用映射到數據庫表的數據訪問對象列表。
我不確定你使用的是什麼語言,但總的來說,存在簡單性與可擴展性之間的折衷。
如果您直接返回DataSet,那麼現在您已將自己與數據庫相關的類聯繫起來了。這留下了很小的擴展空間 - 如果您允許訪問文件或其他類型的數據源,該怎麼辦?但是,它也很簡單。這是記錄集模式,C#/ VB爲此提供了很多內置支持。 GUI層可以訪問記錄集並輕鬆操作數據。這適用於簡單的應用程序。另一方面,您可以將數據集包裝在自定義對象中,並提供網關方法(請參閱網關模式http://martinfowler.com/eaaCatalog/gateway.html)。這種方法更復雜,但提供了更多的可擴展性。在需要分離業務邏輯,數據邏輯和GUI邏輯的更大型應用程序中,這是一種更加可靠的方法。
對於大型企業應用程序,您可以使用對象關係映射工具(ORM)進行研究。它們有助於自動將java對象映射到數據庫表。他們隱藏了很多痛苦的SQL細節。 Spring等框架爲ORM提供了極好的支持。
我傾向於使用對象數組,以便我可以從業務邏輯中斷開DAO。
例如,您可以將數據作爲數據集存儲在數據集中,併爲他們提供了一種在更新之前添加到數據庫的簡單方法,以便他們可以傳遞信息以進行修改操作,然後當他們想要一次性完成他們可以做到的改變。
我更喜歡用戶不能自己添加/修改結構,因爲它更難確定數據庫中必須更改的內容。
通過最初返回一個數組,他們可以顯示數據庫中的內容。
然後,隨着表示層進行更改,控制器可以更新DAO。通過鬆耦合,整個系統變得更加靈活,因爲您可以將DAO從數據集更改爲其他內容,而其他應用程序並不在意。
有兩種選擇是最通用的。
查看結果集的第一種方法是作爲一個映射列表,其中每個映射表示ResultSet中的一行。這些鍵是FROM子句中列出的列;值是數據庫值。
查看ResultSet的第二種方式是作爲List的Map,其中每個List表示ResultSet中的列。 Map鍵是FROM子句中列出的列;這些值是數據庫值列表。
如果你不想做全面的ORM,這些可以帶你很長的路要走。
- 1. Python數據結構推薦?
- 2. 推薦.NET數據訪問層/中間層
- 3. WPF數據訪問層體系結構
- 4. 數據結構訪問
- 5. 訪問python數據結構
- 6. 訪問結構數據(matlab)
- 7. 訪問postgres數據結構
- 8. 推薦元數據?
- 9. 數據庫推薦
- 10. 緩存數據訪問層結果
- 11. Clojure規範訪問層次結構規範中的數據
- 12. mongodb - 針對大量數據點的推薦樹結構
- 13. EF Weight-Zone-Price的數據庫結構推薦
- 14. 推薦數據結構的這種使用情況
- 15. 訪問數據訪問層中的HttpContext.Current
- 16. 訪問數據鏈路層數據包
- 17. 直接訪問數據結構的Java
- 18. DAO&BO(數據訪問層) - 體系結構
- 19. 自動數據訪問層
- 20. 測試數據訪問層
- 21. ADO.NET數據訪問層
- 22. 優化數據訪問層
- 23. 定義數據訪問層
- 24. 優勢數據訪問層
- 25. WCF從數據訪問層
- 26. TDD數據訪問層
- 27. 推薦開源C#算法和數據結構庫
- 28. 將數據結構轉換爲perl對象(模塊推薦)
- 29. MongoDb結構推薦
- 30. 編輯推薦人數據
好問題..我一直使用DataSet,但不認爲這是最好的.. – Daniel 2009-07-27 00:04:09