我们可以从 DAO 层返回 json 对象吗?

Posted

技术标签:

【中文标题】我们可以从 DAO 层返回 json 对象吗?【英文标题】:Can we return json object from DAO layer? 【发布时间】:2016-03-18 07:54:44 【问题描述】:

我了解了 DAO 层,据我所知,DAO 层应该将数据添加到数据库中并从数据库中获取数据。

返回时应该返回 POJO。

如果 DAO 在不破坏设计模式的情况下返回 JSON 对象或 jsonArray 是否可以(合法)?

【问题讨论】:

你可以为所欲为,但我不会那样做。为什么你认为这可能是个好主意?为什么不返回一个带有类型字段、有用方法等的实际对象。 DAO 代表它所代表的东西,数据的性质没有被禁止。然而,JSON 是特定于视图的,IMO 应该在检索数据后进行翻译。 我想在整个项目中使用 jsonarray 来检索数据。但是,是的,我明白了。谢谢。 从 DAO 返回 POJO 并在控制器层将其序列化为 JSON 会更灵活的解决方案。想想如果某些服务想要以 XML 格式获取您的数据怎么办。 【参考方案1】:

我想,没有。

DAO 是一种设计模式,它应该返回一个简单的 POJO,供服务层使用。服务可以向最终用户提供简单的实体,以及 JSON 对象等。

我希望它会有所帮助。 ;)

【讨论】:

DAO 处理 json 注解的对象有什么问题?

以上是关于我们可以从 DAO 层返回 json 对象吗?的主要内容,如果未能解决你的问题,请参考以下文章

我们可以直接在控制器中使用 DAO 而不是业务层对象吗?

JPA & JDBC 可以在 DAO 层共存吗?

从 yii 中的模型获取相关数据并返回 json 的最佳方法

是否应该从数据访问层或接口返回原始的 Hibernate 注释 POJO?

从 DAL 返回数据对象

使用休眠时的 DAO 模式