2009-07-27 74 views

回答

0

我使用映射到數據庫表的數據訪問對象列表。

0

我不確定你使用的是什麼語言,但總的來說,存在簡單性與可擴展性之間的折衷。

如果您直接返回DataSet,那麼現在您已將自己與數據庫相關的類聯繫起來了。這留下了很小的擴展空間 - 如果您允許訪問文件或其他類型的數據源,該怎麼辦?但是,它也很簡單。這是記錄集模式,C#/ VB爲此提供了很多內置支持。 GUI層可以訪問記錄集並輕鬆操作數據。這適用於簡單的應用程序。另一方面,您可以將數據集包裝在自定義對象中,並提供網關方法(請參閱網關模式http://martinfowler.com/eaaCatalog/gateway.html)。這種方法更復雜,但提供了更多的可擴展性。在需要分離業務邏輯,數據邏輯和GUI邏輯的更大型應用程序中,這是一種更加可靠的方法。

對於大型企業應用程序,您可以使用對象關係映射工具(ORM)進行研究。它們有助於自動將java對象映射到數據庫表。他們隱藏了很多痛苦的SQL細節。 Spring等框架爲ORM提供了極好的支持。

0

我傾向於使用對象數組,以便我可以從業務邏輯中斷開DAO。

例如,您可以將數據作爲數據集存儲在數據集中,併爲他們提供了一種在更新之前添加到數據庫的簡單方法,以便他們可以傳遞信息以進行修改操作,然後當他們想要一次性完成他們可以做到的改變。

我更喜歡用戶不能自己添加/修改結構,因爲它更難確定數據庫中必須更改的內容。

通過最初返回一個數組,他們可以顯示數據庫中的內容。

然後,隨着表示層進行更改,控制器可以更新DAO。通過鬆耦合,整個系統變得更加靈活,因爲您可以將DAO從數據集更改爲其他內容,而其他應用程序並不在意。

0

有兩種選擇是最通用的。

查看結果集的第一種方法是作爲一個映射列表,其中每個映射表示ResultSet中的一行。這些鍵是FROM子句中列出的列;值是數據庫值。

查看ResultSet的第二種方式是作爲List的Map,其中每個List表示ResultSet中的列。 Map鍵是FROM子句中列出的列;這些值是數據庫值列表。

如果你不想做全面的ORM,這些可以帶你很長的路要走。