2011-08-24 39 views
0

我爲一個項目創建了一個包含數據庫所有訪問代碼的類。 這是一個很好的做法,假設這個類不包含任何邏輯,或者我應該使用幾個類?如果是的話,我應該如何分配我的代碼?我使用C#.Net。在一個類中編寫所有數據庫訪問代碼是否是一種好的做法?

+0

你使用什麼編碼語言? –

+0

盧克見我更新的答案。我希望能更多地闡明你的概念。 – AlphaMale

回答

2

實際上,在MVC框架的概念下,爲數據庫訪問創建一個不同的類是一個很好的做法,爲您的視圖分別創建邏輯類和獨立類。

如果您正在爲假定它不包含任何邏輯的情況下編寫數據庫訪問的單獨類,那麼您的表現很好。

在敏捷開發中有一個名爲數據庫封裝層的術語。

數據庫封裝層從您的業務代碼隱藏數據庫的實現細節,包括它們的物理模式。實際上,該層爲您的業務對象提供持久性服務 - 從數據源讀取數據,將數據寫入數據和刪除數據的能力。理想情況下,您的業務對象應該不知道它們如何被持續存在,只是發生。數據庫封裝層並不神奇,它們不是學術理論;數據庫封裝層通常用於大型和小型應用程序以及簡單和複雜應用程序的實踐。數據庫封裝層是每個敏捷軟件開發人員應該意識到並準備好使用的重要技術。

一個有效的數據庫封裝層將提供以下幾個優點:

- >它可以減少你的對象架構和數據模式之間的耦合,提高你的演進一方的能力。

- >它在一個地方實現所有與數據庫相關的代碼。

- >它簡化了應用程序員的工作。

- >它允許應用程序員專注於業務問題,而敏捷DBA可以專注於數據庫。

- >它爲您提供了實現面向數據的業務規則和邏輯的通用位置。

- >它利用特定的數據庫功能,提高應用程序性能。

希望這會有所幫助。

1

如果你的數據庫很小,比如只有幾張表,你可以把所有的查詢寫在一個類中。否則我會建議每個實體/表一個類。例如,StudentDao.class將只關注對數據庫表「STUDENT」的查詢,而TeacherDao.class將只包含對「TEACHER」表的查詢。如果你要實現一個複雜的業務邏輯,你可能想要一個服務類,把StudentDao和TeacherDao編織在一起。

0

這些是訪問數據庫時的一些建議。

1.)始終將數據庫訪問參數保存在屬性文件中。使用處理程序來獲取這些數據。因爲當你改變你的數據庫時,你不需要改變你的代碼就可以改變屬性文件就足夠了。 - 所以在這裏你需要一個處理程序類。

2。)永遠不要創建一個執行所有操作的單個類(一個上帝類)。根據意圖將你的行爲分散到不同的類中。例如,將所有讀取行爲保留在一個類中,在另一個類中編寫行爲......等等。

3.)你可以創建一個類來處理連接創建和池物... 希望這會有所幫助。

相關問題