我2年来一直在使用playframework。框架具有“JPA on streoids”功能。我非常喜欢它。
http://www.playframework.org/documentation/1.2.4/5things
这是示例代码:
User connectedUser = User.find("byEmail", connected()).first();
...
connectedUser.delete();
...
connectedUser.save();
这个方法使用了很多辅助方法。其中一些是静态方法。 每个模型文件都扩展了Model类和voila。您可以使用查找,保存,删除,获取...
现在我使用Spring MVC 3.1。我喜欢它的MVC用法。 但连接系统有点复杂。
我读了很多文章。其中一些使用服务层,dao层和模型层。 其中一些只使用dao层和模型层。 有些人正在为每个模型对象以及服务类和服务接口创建DAO接口和DAO类。 其中一些使用通用的DAO类。
事实上,我对所有这些变种感到有些困惑。答案 0 :(得分:4)
DAO层可用于将数据访问代码与业务逻辑代码隔离开来。当您开始对业务逻辑进行单元测试时,这尤其有用,因为它允许模拟DAO。所有应用程序都不仅仅具有CRUD操作。
接口具有相同的可测试性优势。阅读what reasons are there to use interfaces (Java EE or Spring and JPA),在那里我解释了拥有接口的优势。
服务层是最重要的层。它是用于划分交易的那个。您可以避免使用DAO层,尤其是如果您具有非常简单的类似于crud的数据访问。但服务层至关重要。您不希望在自己的事务中有三个插入和一个更新。请参阅DAO Design Pattern and Servlets,了解我解释服务层如此重要的原因。