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

Java模型最佳实践SQL-JSON-VIEW,java,model,Java,Model,在处理JavaWeb应用程序时,我想知道我的模型层是否按其应有的方式编写。例如,假设我们的SQL数据库中有一个表用户,它由15列组成。现在,当我们使用SQL选择所有列时,我们将其映射到一个Java类,通过JSON序列化并通过网络将其发送到某个视图,并在屏幕上显示 在第二个场景中,我们只想在屏幕上选择2列,所以我们确实要从用户中选择c1、c2。这就是我的问题所在。。。我应该将这些列映射到同一个Java模型类吗?或者我应该创建一个新的映射器和类来适应它?这两种方法似乎都有缺点,每个查询单独的类需要更

在处理JavaWeb应用程序时,我想知道我的模型层是否按其应有的方式编写。例如,假设我们的SQL数据库中有一个表用户,它由15列组成。现在,当我们使用SQL选择所有列时,我们将其映射到一个Java类,通过JSON序列化并通过网络将其发送到某个视图,并在屏幕上显示

在第二个场景中,我们只想在屏幕上选择2列,所以我们确实要从用户中选择c1、c2。这就是我的问题所在。。。我应该将这些列映射到同一个Java模型类吗?或者我应该创建一个新的映射器和类来适应它?这两种方法似乎都有缺点,每个查询单独的类需要更多的工作,但它可以确保您始终知道它包含哪些数据,而不是检查null或使用optionals,还可以防止您映射实际不需要的列


你的意见是什么?非常感谢

从技术上讲,您可以将相同的
用户
类重新用于完整的15属性以及部分的2属性实体。但这是有代价的。每次在代码中看到
User
类的实例时,您都必须考虑它是完整实体还是部分实体?哪些字段可能为空,也可能不为空?这将使对代码进行推理变得更加困难。

虽然代码更多,因此需要做更多的工作,但使用一个类对不同的sql数据进行映射在体系结构上是行不通的。您必须使类成员保持未初始化状态,或者显式地将它们设置为
null
。查看SOLID architecture principles()的单一责任原则。感谢您的回答!命名呢?你怎么称呼它?例如,只有2列的用户;用户名和显示名?它不再是一个用户了,就像用户名和显示名的用户一样,但那个当然太长了……哦,命名很难<代码>用户名详细信息,
用户名详细信息
用户名信息