【问题标题】:Using Model as GenericDAO使用模型作为 GenericDAO
【发布时间】:2012-02-15 22:23:43
【问题描述】:

我使用 playframework 已有 2 年了。框架具有“JPA on streoids”功能。我非常喜欢它。

http://www.playframework.org/documentation/1.2.4/5things

这是示例代码:

User connectedUser = User.find("byEmail", connected()).first();
...
connectedUser.delete();
...
connectedUser.save();

这种方法使用了很多辅助方法。其中一些是静态方法。 每个模型文件都扩展了模型类,瞧。您可以使用查找、保存、删除、获取...

现在我使用 Spring MVC 3.1。我喜欢它的 MVC 用法。 但是连接系统有点复杂。

我读了很多文章。其中一些使用服务层、dao 层和模型层。 其中一些仅使用 dao 层和模型层。 有些人正在为每个模型对象以及服务类和服务接口创建 DAO 接口和 DAO 类。 其中一些使用通用 DAO 类。

事实上,我对所有这些变体有点困惑。

  • 我们为什么要使用 DAO 层。单个 hibernateUtil 类并命名 查询对于 CRUD 操作来说是不够的。
  • 我们为什么不使用播放框架方法?
  • 为什么我们对每个 DAO 类都使用接口?仅仅执行还不够?
  • 我们为什么要使用不必要的服务层?

【问题讨论】:

    标签: hibernate spring-mvc playframework dao


    【解决方案1】:

    DAO 层有助于将数据访问代码与业务逻辑代码隔离开来。这在您开始对业务逻辑进行单元测试时特别有用,因为它允许模拟 DAO。所有的应用程序都不是简单的 CRUD 操作。

    接口具有相同的可测试性优势。阅读what reasons are there to use interfaces (Java EE or Spring and JPA),我在其中解释了拥有接口的优势。

    服务层是最重要的层。它是用于划分交易的一种。您可以避免使用 DAO 层,特别是如果您有极其简单的类似 crud 的数据访问。但服务层至关重要。您不希望在各自的事务中分别进行三个插入和一个更新。请参阅DAO Design Pattern and Servlets 了解我解释为什么服务层如此重要的问题。

    【讨论】:

      猜你喜欢
      • 2014-04-16
      • 1970-01-01
      • 1970-01-01
      • 2013-05-11
      • 2012-01-24
      • 1970-01-01
      • 2014-02-15
      • 1970-01-01
      • 2012-07-24
      相关资源
      最近更新 更多