2011-03-23 52 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

相关问题