Spring MVC 中是不是需要模型 POJO?
Posted
技术标签:
【中文标题】Spring MVC 中是不是需要模型 POJO?【英文标题】:are Model POJOs required in Spring MVC?Spring MVC 中是否需要模型 POJO? 【发布时间】:2017-12-28 15:54:24 【问题描述】:我目前正在玩一个带有两个表的 Spring MVC 应用程序。
学生 (id, name) 和 Publications (student_id, journal)。
在我的 GET 请求中,我试图请求给定学生 ID 的所有日志(字符串)。我相信在这种情况下,我可以在我的 DAO 中简单地执行以下操作,而无需使用任何模型:
@Override
public List<String> getAllJournals(String name)
String query = "SELECT journal FROM Publications INNER JOIN Student ON "
+ "Publications.student_id = Student.id WHERE Student.name=:name";
Map<String,Object> params = new HashMap<String,Object>();
params.put("name", name);
List<String> journals = jdbcTemplate.queryForList(query, params, String.class);
return journals;
我应该将 POJO 用于 Publication 类还是 Student 类?这不是多余的吗?
【问题讨论】:
【参考方案1】:拥有 POJO 是个好主意,因为它们允许您使用它们的属性,而不是像您在此处所做的那样为要使用的每个属性创建一个属性:
List<String> journals = jdbcTemplate.queryForList(query, params, String.class);
即使它看起来是一种“冗余”的东西,使用 POJO 也可以帮助您在代码中重用方面。您可以简单地创建返回所有 Publication
属性的方法。在您的情况下,这是一个非常简单的实体,只有 2 个字段,但如果该实体长大,使用 POJO 可以帮助您实现重用方面。
这是关于advantages of using POJOs 的一个很好的回答。
【讨论】:
在这里,如果我根本不关心 student_ids,最好只调用 Publications 上的 setter,例如publication.set(journals); return publications;
是的,同意。如果您不关心重用对象属性,您可以根据需要的结果进行查询。以上是关于Spring MVC 中是不是需要模型 POJO?的主要内容,如果未能解决你的问题,请参考以下文章