Java模型最佳实践SQL - JSON -VIEW

问题描述:

在处理Java Web应用程序时,我想知道我的模型层是否应该如此编写。例如,假设我们的SQL数据库中有一个USER表,它由15列组成。现在,当我们用SQL选择所有列时,我们将它映射到一个Java类,通过JSON序列化并通过网络发送给某个View并在屏幕上显示它。Java模型最佳实践SQL - JSON -VIEW

在第二种情况下,我们只想在屏幕上选择2列,所以我们做SELECT c1,c2 FROM USER。这就是我的问题来了......我应该将这些列映射到同一个Java模型类?或者我应该创建一个新的映射器和类来适应它?这两种方法似乎都有缺点,对于每个查询来说,单独的类是更多的工作,但它确保您始终知道它包含的数据,而不是检查空值或使用可选项,还会阻止您映射实际上的列不需要。

您的意见是?非常感谢!

+1

虽然它是更多的代码,因此更多的工作要做,使用一个类用于不同的SQL数据映射是一个架构的不行。你将不得不离开类的成员未初始化或显式设置它们为null。查看SOLID体系结构原则的单一职责原则(https://en.wikipedia.org/wiki/SOLID_(object-oriented_design))。 – deHaar

从技术上讲,您可以对完整的15属性以及部分2属性实体重用相同的User类。但那会带来一个代价。每当您在代码中看到User类的实例时,您将不得不考虑它是完整实体还是部分实例?哪些字段可能不是null?这会让代码更难理解。

+0

感谢您的回答!怎么命名?你会如何命名?例如只有2列的用户;用户名和显示名称?这不是一个用户了,它就像UserWithUsernameAndDisplayName,但这将是太长的课程... – localhost

+0

哦,命名是困难的。 'UserDetails','UserNameDetails','UserNameInfo'。 – lexicore