0 0

service层处理的内容?5

我一直对j2ee里面service层所处理的内容不太理解,它调用DAO,再提供出方法给action使用.
如今有这样一个业务:在一个论坛系统中,用户可以对一条贴子做"顶"、"踩"操作.在数据库中有字段"up"和"down"用于记数。
以于这个业务我有三种设想:
1. Action里调用service层查询pojo对象的方法拿到该条记录后将up属性加1后再调用service层的update(pojo)的方法。
2. Action里调用service层里一个叫up(int id)的方法,该方法的实现是调用DAO的up方法(该方法会将up字段加1).
3. Action里调用service层里一个叫up(int id)的方法,该方法的实现是调用DAO的查询pojo对象方法,再更新pojo的up属性,再调用DAO的更新pojo对象的方法.

请大家帮我分析一下哪种设想才是真正service的设计模式,或者都不是...能把理由说清楚点就最好了,哪有service的详细介绍的能推荐一下吗?
2009年1月14日 11:40

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

0 0

采纳的答案

假设你的POJO叫Topic

方式一:在POJO里定义
给Topic加两个方法:

public void goUp(){
this.up++;
}
public void goDown(){
this.down++;
}

然后
TopicService tService = ...;
Topic topic = tService.get(id);
topic.goUp();
tService.update(topic);


方式二:你也可以在Service里定义
public void goUp(Topic topic){
topic.setUp(topic.getUp()++);
this.save(topic);
}



我个人喜欢第一种。。。

2009年1月14日 11:54
0 0

我补充一些,这种增加1的操作,不要放在代码里面,高并发的时候,会出现统计错误的,除非你对这些方法做同步,成本太高。

建议直接在SQL语句里面让那个字段自增1。

2009年1月14日 12:07
0 0

服务层处理业务逻辑,DAO封装Entity对象,Action作为Controller处理分发。
业务逻辑是最容易变化的地方,当业务改变时,只增加修改相应的代码即可。真正享受分层带来的益处。

2009年1月14日 11:56
0 0

严格的讲,第三种是,DAO只是数据访问对象,负责封闭数据的访问,与应用逻辑无关,Action大多数情况下的作用是封装下对象和转发。

2009年1月14日 11:46

相关推荐

    Service层和DAO层解析

    在简单的情况下,Service层可能直接调用DAO层的方法,但其主要目的是提供更高层次的抽象,处理业务规则,进行异常处理,并与其他服务或系统进行交互。 在分层架构中,Service层和DAO层的解耦是非常重要的。Spring...

    Spring的作用贯穿了整个中间层,将Web层、Service层、DAO层及PO无缝整合

    2. **分层设计**:Spring框架支持分层的设计模式,这意味着不同的业务功能可以被封装在不同的层中,例如Web层负责处理用户界面,Service层处理业务逻辑,DAO层处理数据访问。这样的设计有助于保持代码的清晰度,并...

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

    此外,Service层还可以处理事务管理,确保数据的一致性。这一层与Action层交互,提供业务服务,与DAO层交互,完成数据操作。 4. **Entity层(领域模型层/实体层)**: Entity层定义了应用中的对象模型,这些对象...

    JUnitTestSSH-Service层

    2. **Service层**:在三层架构(展示层、业务逻辑层、数据访问层)中,Service层负责处理业务逻辑,与DAO层交互,为Controller层提供数据。它是应用的核心,包含了复杂的业务规则和流程。 3. **Mocking和Stubbing**...

    service层的单体操作抽象设计

    总之,"service层的单体操作抽象设计"关注的是如何在Java环境中,通过定义接口和基类来构建服务层的结构,使其具有良好的可扩展性和可维护性,同时结合设计模式和最佳实践,实现高效、灵活的业务逻辑处理。

    JAVA生成树Service层代码

    ### JAVA生成树Service层代码详解 #### 背景与目的 在开发具有层次结构的数据展示功能时,例如产品分类、组织架构等场景,我们常常需要构建一个可视化的树形结构来直观展示这些数据。本篇文章将深入探讨如何在Java...

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

    例如,当用户请求删除一个记录时,Service层会调用DAO的delete方法,并处理可能出现的数据一致性问题。 5. **Oracle数据库**:Oracle是一种高性能的关系型数据库管理系统,广泛应用于企业级应用。在这个项目中,...

    DWR+JPA DWR直接访问SERVICE层,并直接处理DAO返回的BEAN.doc

    在本文中,我们将深入探讨如何使用DWR与JPA结合,直接访问SERVICE层并处理DAO返回的BEAN,以及在这样做时需要注意的关键点。 首先,当我们在SERVICE层定义了MANAGER方法后,这些方法通常封装了业务逻辑。通过DWR,...

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

    本篇文章将深入探讨JDBC DAO的设计思想,以及如何结合Service层来构建一个完整的异常处理机制。 首先,理解JDBC DAO的基本概念。DAO模式的主要目标是提供一个接口,使得业务层可以与具体的数据库操作分离。这样,...

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

    Service层则是业务逻辑处理的中心,它调用DAO层的方法来实现对数据的操作,并且可能涉及到事务管理、异常处理、缓存等高级功能。服务层代码生成通常包括服务接口和服务实现类,服务接口定义了对外提供的业务方法,...

    自动生成MVC中的Service层、Dao层及Model层代码

    首先,Service层是业务逻辑层,它负责处理应用的核心业务。开发者通常会在此层与数据库交互,调用Dao层的方法来完成数据的增删查改操作。Service层代码的自动生成可以帮助我们快速创建服务接口和实现类,减少重复...

    SpringBoot 多模块 Serivce 层单元测试

    每个模块都有明确的职责,Service层则主要负责处理业务逻辑,它依赖于Repository层与数据交互,并为Controller层提供服务。 进行Service层的单元测试,我们主要关注以下几个方面: 1. **测试环境配置**:在IDEA中...

    Action,Service和Dao功能

    Service 层是处理业务逻辑的层次,它主要负责处理业务逻辑,例如处理跨多个业务对象的操作。Service 不依赖于任何表现技术,不操作任务用于表现的对象,对于业务对象,Service 负责处理业务逻辑。例如,在 Struts ...

    使用jsp-servlet-service-dao四层结构完成用户信息的增删改查操作

    - **修改页面**:用户可以编辑自己的信息,Servlet接收更新请求,Service层处理数据更新,DAO执行相应的SQL更新语句。 - **权限控制**:为了防止普通用户删除其他用户,系统需要实施权限控制。这通常在Servlet中实现...

    Mybatis plus无介绍快使用,自带封装service层的使用附源码(三)

    这样,我们只需要在自定义的服务类中继承ServiceImpl并传入对应的Mapper接口,就可以拥有一个完整的Service层,大大减少了编码工作量。 例如,如果我们有一个User实体类和对应的UserMapper,我们可以创建一个...

    Laravel开发-lara-service

    在Laravel框架中,服务层(Service Layer)是应用程序架构中的一个重要组成部分,它负责处理业务逻辑,隔离模型、控制器和视图之间的复杂性,确保代码的可维护性和可测试性。"Laravel开发-lara-service"这个项目可能...

    strut2+spring+ibatis 的ation层,service层,dao层自动生成,简单易用

    在本项目中,自动生成的Service层代码可以包含对业务逻辑的封装,使得业务处理更加模块化,便于维护和测试。 iBatis,作为一个轻量级的持久层框架,它将SQL语句与Java代码分离,提供了一种灵活的映射机制。通过XML...

    Java service层获取HttpServletRequest工具类的方法

    在Java Web开发中,Service层通常负责业务逻辑处理,它与Controller层相分离,使得代码结构更加清晰。然而,有时Service层需要访问HttpServletRequest对象来获取请求信息,如参数、头信息或Session数据。这时,我们...

    springboot+dubbo的service层

    在Service层,MyBatis常用于处理数据访问逻辑,通过Mapper接口与数据库进行交互,简化了数据库操作。 再来看`MyBatis-Plus`,它是MyBatis的扩展插件,为MyBatis提供了强大的CRUD操作。MyBatis-Plus提供了许多实用...

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

    2. Service层:Service层是业务逻辑的载体,它调用DAO层的方法来完成实际的数据操作。插件能够生成服务接口和服务实现类,其中包含了对DAO方法的调用,以实现CRUD操作。这样,开发者可以专注于业务逻辑的实现,而...

Global site tag (gtag.js) - Google Analytics