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的主要内容,如果未能解决你的问题,请参考以下文章
一个项目中说系统分为表现层、控制层、逻辑层、DAO层和最终数据库五层架构 这具体是啥意思啊
希望看懂我想问的朋友回答下,关于action层,service层和dao层,在这里action和service不知道具体应怎么写