2009-06-16 26 views
2

有誰知道任何設計模式與關係數據庫接口?例如,將SQL嵌入到方法中,還是實例化一個SQL對象,並在其中傳遞數據並構建SQL語句會更好?你有一個靜態方法來返回連接字符串,每個方法只是獲取該字符串並連接到數據庫,執行其操作,然後根據需要斷開連接,或者您有其他負責連接,執行,斷開連接等的結構?與關係數據庫接口的設計模式?

換句話說,假設數據庫已經存在,OO應用程序與它進行交互的最佳方式是什麼?

感謝您的任何幫助。

回答

0

您將通過Google搜索DAL識別的所有內容都描述了一種設計模式。看起來像站在森林中間​​,並要求看一棵樹。有幾十個甚至幾千個。

以下是a book I'm reading的報價,以尋找資源。

......沒有談論構建持久層的模式和最佳實踐,就不可能討論ORM。再一次,也不可能在沒有召集行業中的大師,即Martin Fowler,Eric Evans,Jimmy Nilsson,Erich Gamma,Richard Helm,Ralph Johnson和John Vlissides的情況下討論ORM模式,後四者是已知的在行業中擔任四人幫(GoF)。本章的目的是解釋和擴展由這些專家創建的一些模式,並提供使用每個開發人員都能理解的語言的具體示例。

+0

這個引用來自哪本書的名字是什麼? – Jayson 2009-06-16 20:54:15

1

我個人很討厭在沒有ORM的情況下使用數據庫。 NHibernate更可取,但iBatis也是現有數據庫的一種選擇(並不是說NH不能處理現有的數據庫)。

0

通常,面向對象應用程序與關係數據庫接口的最佳方式是通過ORM;雖然這本身不是設計模式,但它是一種具有特定使用模式的工具,因此它非常相似。對象關係映射(ORM)工具提供數據庫與內存中一組對象之間的映射;通常,這些工具提供了用於管理會話,連接和事務等事務的手段。一個很好的例子就是Hibernate(NHibernate on .NET)。

0

以我的經驗,最好是有根本沒有SQL語句(大多數奧姆斯將允許) ,最好不要有任何連接細節知識(連接字符串等)。更好的是,如果您可以擁有與任何主要數據庫供應商完全相同的代碼片段。

0

POEAA在這個問題上有豐富的知識,如果你打算推出自己的。