Dao 层和业务逻辑与 struts 和 hibernate

Posted

技术标签:

【中文标题】Dao 层和业务逻辑与 struts 和 hibernate【英文标题】:Dao layer and business logic with struts and hibernate 【发布时间】:2012-06-22 14:46:07 【问题描述】:

我有一个 struts 项目,我的客户给了我完整的业务逻辑课程。他需要这个与 struts 和 hibernate 融为一体的东西。

哪个最好, 要将业务逻辑放到我的 Dao 层,需要为业务逻辑添加一个额外的服务层。

一些struts项目我发现action类直接访问Dao。

请建议我哪个是更好的选择。非常感谢帮助。

谢谢,

【问题讨论】:

业务逻辑应该进入服务层,或者struts控制器。不在 DAO 中 建议你添加一个业务逻辑层,DAO只是响应DB访问。 创建一个服务层并把你的业务逻辑放在那里。让struts2动作与服务层对话,而不是服务层与DAO。也许你可以添加外观以使其更精细 【参考方案1】:

我的建议是让 Dao 从您的业务逻辑中保持清洁,但是是的,所有与数据库相关的逻辑和自定义都应该像所有休眠逻辑一样在 DAO 层编写,将结果转换为您的类等。(当您使用 Hibernate 时)应该用 DAO 编写。

并且整个迭代、设置/获取、结果定制、准备、请求改进作为休眠查询的参数都应该写在服务层。

另一层Controller 应该在服务层上工作,该服务层将接收请求并调用相应的服务方法并提供生成的响应。

【讨论】:

【参考方案2】:

我强烈建议将您的业务逻辑写入服务层,以便您的 dao 层仅包含数据库交互并且可以在任何时间点重复使用。

另外,我建议您添加一个表示层(所有具有纯值的实体),供 UI 层访问。

【讨论】:

【参考方案3】:

让 Hibernate 成为您的 DAO 层,并在包含您的业务规则的上面编写一个服务层。这两者共同构成了 MVC 的模型部分。 Struts 动作是 MVC 的控制器部分。

【讨论】:

以上是关于Dao 层和业务逻辑与 struts 和 hibernate的主要内容,如果未能解决你的问题,请参考以下文章

java中dao层和service层的区别是啥

一个项目中说系统分为表现层、控制层、逻辑层、DAO层和最终数据库五层架构 这具体是啥意思啊

希望看懂我想问的朋友回答下,关于action层,service层和dao层,在这里action和service不知道具体应怎么写

一个项目中说系统分为表现层控制层逻辑层DAO层和最终数据库五层架构

Struts2的基本流程的详细介绍

Spring Boot中DAO层和Service层等理解