2011-03-23 60 views
1

我們擁有一個具有下列方式的數據流動的介質尺寸的Java服務器:有多少數據對象層是一種好的做法?

SQL數據庫 - >數據層 - >業務層 - > XML序列化

要注意這一點很重要,即數據模型大多在層之間不會改變。然而我聽說有一個單一的數據模型用於:SQL數據庫 - (IBATIS) - >模型 - >將模型轉換爲XML - 不是一個好主意,因爲模式變化意味着模型的變化,然後改變在應用程序的所有層中。而XML的變化也意味着模型必須改變。

因此,建議在這種情況下有兩個物體層? 1)業務模式使用IBatis映射到的業務邏輯數據層。 2)JAXB用來轉換爲XML的XML層。

+1

很大程度上取決於系統的複雜性。例如,您可能有一個讀取XML數據的系統,並通過多個層傳遞給GUI。有些更改可能會要求您更改全部三層中的代碼,但通常情況並非如此。另一方面,您可能會發現業務層只是重複了大部分數據層。在這種情況下,我會將業務層視爲數據層的擴展,而不是複製它。 – 2011-03-23 15:13:39

回答

2

說明:我領導EclipseLink JAXB (MOXy),EclipseLink提供了JAXB和JPA實現。

我推薦使用一個數據模型,它通過JAXB映射到XML,並通過JPA映射到數據庫。

架構變化意味着在 模式的轉變,然後在所有層中 更改應用程序。

  • 如果架構更改引入了新的數據,那麼它確實影響模型,不引入新的數據(變化要素排序,添加分組元素)架構的變化只會影響映射元數據。

因此,它是建議在這一情況下,兩個 對象層?

  • 如果你有兩個對象模型,那麼你將要介紹的對象模型之間轉換層。這涉及到另一個需要處理的庫,以及需要維護的更多代碼。現在對模式的更改會影響對象模型和對象轉換層。這與一個對象模型場景相似。
+0

非常感謝您的評論,這也是我的思路 – mbdev 2011-03-23 15:45:51

相關問題