0 0

dao和service的设计问题10

本人刚学完SSH。感到很困惑。问题如下:
SSH中的dao和service的设计问题。我的理解是这样的,dao是数据访问接口,里面放的应该是对数据库的基本操作。如基本的增删改查。以前做项目的时候基本是一个表对应一个dao.感觉重复的东西很多。查了相关的资料后就用泛型设计了一个通用dao。
而service是业务逻辑层。就是调用dao中的方法来处理业务逻辑。当处理多个对象的时候就要用到事物了。我在spring中用的是申明式事物,在dao中可以用借口回调处理事物。可是在service中怎么处理?

还有有些查询条件太过复杂。我在dao 中写了个方法通过传detachedCriteria对象来查询。这样的话我可以在action里写出查询语句了。也比较灵活。可是感觉又不对。这样的话岂不是在action里要依赖hibernate了,这不就破环了分层的意思了吗。

第一次发贴。希望大家不吝赐教。
2009年1月04日 18:15

3个答案 按时间排序 按投票排序

0 0

我理解你的问题是在   dao中如果书写那些查询,dao过于庞大。如果写在action里又破坏分层。其实还是应该写在dao里,你可以泛化那个通用的dao对不同业务需求的dao书写定制的dao,而把那些真正通用的部分写在范型dao里。action里写查询语句不赞成,这样破坏分层而且action的书写人应该只关注页面逻辑,底层的东西不应该是他们的责任。

2009年1月19日 13:20
0 0

如果按你那么说,那么分层就没有任何意义,所以,action里的一些条件,也都可以做为参数传入的,但是,这样的方法是和不好的,出现这种问题,只能是设计出现了问题.

既然需要分层,那么就意味着每一层的职责是不同的,每一层有没一层的任务,就和struts的MVC一样,你不能使用form去做action的职责吧!

2009年1月04日 18:15
0 0

http://www.iteye.com/topic/42704

2009年1月04日 18:15

相关推荐

    快速生成dao、service、controller等相关代码

    总结起来,"723.crud-intellij-plugin__mars05"插件是为IntelliJ IDEA用户设计的,它能够帮助开发者快速生成基于MyBatis或JPA的DAO、Service和Controller代码,实现数据库的CRUD操作。通过自动化这个过程,开发团队...

    Service层和DAO层解析

    Service层和DAO层是软件开发中常见的两种设计模式,主要用于分离业务逻辑和数据访问操作。在Java Web开发中,它们通常被应用于三层架构或MVC(Model-View-Controller)模型中。 DAO(Data Access Object)层是负责...

    hibernate4 通用dao,service

    3. Service层的设计:讨论如何在Service层中封装业务逻辑,调用DAO方法,可能还包括异常的捕获和处理,以及事务的控制。 4. 泛型的应用:可能使用Java泛型来提高DAO和Service的复用性,使得一个DAO或Service类可以...

    新闻发布系统设计思路(Dao与service)

    在IT行业中,新闻发布系统是常见的应用,用于发布、管理和分发新闻内容。在这个系统的开发过程中,"Dao(数据...在设计和实现这两个层次时,需要充分考虑系统的可扩展性、可维护性和性能,以确保系统的健壮性和适应性。

    dao+service+servlet+jsp实现留言板(添加、查看)

    本项目采用DAO(数据访问对象)、Service层以及Servlet和JSP技术,按照MVC(模型-视图-控制器)模式来实现留言板功能,包括留言的添加和查看。 1. **MVC模式**: MVC是一种广泛应用于Web应用开发的设计模式,它将...

    java代码生成器(dao层service层)

    Java代码生成器是一种工具,主要用于自动化编程过程中重复性较强的部分,比如DAO(数据访问对象)层和服务(Service)层的代码编写。DAO层是应用程序与数据库交互的主要接口,而Service层则封装了业务逻辑,两者在...

    jsp、servlet进行增删改查,dao层和service层分开

    在Java Web开发中,"jsp、servlet进行增删改查,dao层和service层分开"是一种常见的设计模式,它遵循了MVC(Model-View-Controller)架构,旨在提高代码的可维护性和可扩展性。以下是这个模式的详细解释: 1. **...

    Servlet使用MVC模式(Dao\Service\Servlet)增删查改

    在JavaWeb开发中,MVC(Model-View-Controller)模式是一种常见的设计模式,用于将业务逻辑、数据处理和用户界面分离,以提高代码的可维护性和可扩展性。Servlet作为JavaWeb应用中的控制器,常被用来处理HTTP请求并...

    网上书店基于dao service sevlet

    【网上书店基于DAO、Service及Servlet的实现】 在IT领域,构建一个网上书店涉及到许多核心技术,其中DAO(Data Access Object)、Service以及Servlet是常见的关键组件。这个“网上书店”项目显然是一个教学实例,...

    JSP+Servlet+AJAX的dao设计模式

    本篇我们将深入探讨如何在JSP、Servlet和AJAX的环境中应用DAO设计模式。 **1. JSP (JavaServer Pages)** JSP是Java的一种视图技术,用于生成动态网页。在JSP中,我们可以直接编写HTML,同时插入Java代码来处理业务...

    crm项目jsp+servlet+service+dao

    在CRM项目中,JSP作为View层负责显示数据,Servlet作为Controller层处理请求和转发,而Service和DAO层则构成了Model层,处理业务逻辑和数据存储。 6. 数据库设计:CRM系统通常涉及到客户信息、销售数据、订单记录等...

    java 自动生成代码 entity,dao,service

    总之,"java 自动生成代码 entity,dao,service" 是一个实用的开发辅助工具,它能有效地帮助Java开发者摆脱重复代码的困扰,提高开发速度,从而更加专注于业务创新和问题解决。对于压缩包中的"UUUU_Web_Test"文件,...

    action层,dao层 ,service层,entity层1

    标题和描述中提到的"action层,dao层,service层,entity层"是这种分层架构的典型组成部分,下面将详细解释每一层的功能和它们之间的交互。 1. **Action层(控制层)**: 这一层主要负责接收用户的请求,进行业务...

    redis+ssm+代码自动生成(dao,service,mapper)

    本项目将Redis集成到SSM中,并实现了DAO、Service、Mapper的代码自动生成,大大提升了开发效率。 首先,我们来看`Spring`,它是整个框架的基础,负责管理对象(Bean)的生命周期和依赖注入。在SSM中,Spring作为...

    JDBC_DAO设计思想与搭建骨架, 结合Service层讲解DAO层的异常处理

    **JDBC DAO设计思想与搭建骨架** 在Java开发中,JDBC(Java Database Connectivity)是连接数据库的标准API,而DAO(Data Access Object...通过合理的架构设计和异常处理机制,我们可以构建出高效、易维护的Java应用。

    博客系统(dao+servlet+service+vo+mysql)

    这是一个基于Web的博客系统,它集成了DAO(数据访问对象)、Servlet、Service和VO(值对象)等核心组件,用于实现完整的CRUD(创建、读取、更新、删除)操作。该系统使用MySQL作为后端数据库,提供了方便的数据存储...

    分了dao service的ssm整合还附带分页功能

    SSM整合是Java Web开发中常见的一种架构模式...通过这个项目,新手可以学习到如何配置和整合SSM框架,理解DAO和Service层的设计,以及如何在MyBatis中实现分页功能。这将为他们进一步深入Java Web开发打下坚实的基础。

    李兴华DAO设计模式

    DAO(Data Access Object)设计模式是一种在软件开发中用于封装对数据库操作的模式,它将数据访问逻辑与业务逻辑分离,使得系统更易于维护和扩展。在这个设计模式中,DAO作为数据层,提供了对数据库的一系列原子性...

Global site tag (gtag.js) - Google Analytics