我正在构建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. 数据结构推荐
- 2. Python数据结构推荐?
- 3. 推荐.NET数据访问层/中间层
- 4. WPF数据访问层体系结构
- 5. 推荐快照数据的数据结构
- 6. 访问python数据结构
- 7. 访问postgres数据结构
- 8. 数据结构访问
- 9. 访问结构数据(matlab)
- 10. 数据访问层
- 11. 数据访问层
- 12. 推荐元数据?
- 13. 数据库推荐
- 14. 结构推荐
- 15. 相同的数据结构导入两次,不能访问底层数据
- 16. Clojure规范访问层次结构规范中的数据
- 17. 可切换数据访问层的结构
- 18. EF Weight-Zone-Price的数据库结构推荐
- 19. 用户信息的推荐数据库结构
- 20. Julia中的推荐数据结构用于高效追加
- 21. mongodb - 针对大量数据点的推荐树结构
- 22. 推荐数据结构的这种使用情况
- 23. 访问数据访问层中的HttpContext.Current
- 24. 访问数据链路层数据包
- 25. 直接访问数据结构的Java
- 26. 访问数据结构中的元素
- 27. 访问JRuby中的Scala数据结构
- 28. 访问结构内的数据
- 29. DAO&BO(数据访问层) - 体系结构
- 30. 数据访问层设计
好问题..我一直使用DataSet,但不认为这是最好的.. – Daniel 2009-07-27 00:04:09