首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

java中dao层和service层的区别,为什么要用service?

读了下面的文章 让我豁然开朗 转文: 首先解释面上意思,service是业务层,dao是数据访问层。...呵呵,这个问题我曾经也有过,记得以前刚学编程的时候,都是在service里直接调用dao,service里面就new一个dao类对象,调用,其他有意义的事没做,也不明白有这个有什么用,参加工作久了以后就会知道...这样的框架,你会了解面向接口编程,**表示层调用控制层,控制层调用业务层,业务层调用数据访问层。...比说你现在用的是SSH框架,做一个用户模块: 1、假设现在你做这个功能会用到user表和权限表,那么你前台的页面访问action,action再去调用用户模块service,用户模块service判断你是操作...user表还是权限表,如果你操作的是user表则service的实现类就去调用userDAO。

1.3K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    java框架中的controller层、dao层、domain层、service层、view层

    ,但是封装的数据是前端的JS脚本,需要使用的数据 4.service层:Service层主要负责业务模块的逻辑应用设计。...Service层的业务实现,具体要调用到已定义的DAO层的接口,封装Service层的业务逻辑有利于通用的业务逻辑的独立性和重复利用性,程序显得非常简洁。...问题的思考 关于 Service 层存在的意义 1.Service被称作业务层。顾名思义,它处理逻辑上的业务,而不去考虑具体的实现。...那么对于Service,就是 Servlet 和 Dao 层之间缓冲的层。通过这一层来进行解耦,使得 Dao 层内的变化不会直接影响到 Servlet 层。...那么,拼接这个 sql 语句的逻辑部分,就放在 service 层进行。而 Dao 层,只负责接收拼接之后的最终的 sql 语句。 最后,service 也不是就非他不可。

    7.1K32

    SpringBoot项目中model层、Dao层、Mapper层、controller层、service层、entity层作用

    2dao(mapper) 又被成为mapper层,叫数据持久层,先设计接口,然后在配置文件中进行配置其实现的关联。dao层的作用为访问数据库,向数据库发送sql语句,完成数据的增删改查任务。...数据持久化操作就是指,把数据放到持久化的介质中,同时提供增删改查操作,比如数据通过hibernate插入到数据库中 3service 业务逻辑层,完成功能的设计 和dao层一样都是先设计接口,再创建要实现的类...接下来就可以在service层调用dao层的接口进行业务逻辑应用的处理。...service的impl是把mapper和service进行整合的文件 封装Service层的业务逻辑有利于业务逻辑的独立性和重复利用性。...4controller 控制层,控制业务逻辑service,控制请求和响应,负责前后端交互 controller层主要调用Service层里面的接口控制具体的业务流程,控制的配置也要在配置文件中进行 5

    5.5K20

    java框架中的controller层、dao层、domain层、service层、view层

    ,但是封装的数据是前端的JS脚本,需要使用的数据 4.service层:Service层主要负责业务模块的逻辑应用设计。      ...Service层的业务实现,具体要调用到已定义的DAO层的接口,封装Service层的业务逻辑有利于通用的业务逻辑的独立性和重复利用性,程序显得非常简洁。...问题的思考 关于 Service 层存在的意义 1.Service被称作业务层。顾名思义,它处理逻辑上的业务,而不去考虑具体的实现。...那么对于Service,就是 Servlet 和 Dao 层之间缓冲的层。通过这一层来进行解耦,使得 Dao 层内的变化不会直接影响到 Servlet 层。...那么,拼接这个 sql 语句的逻辑部分,就放在 service 层进行。而 Dao 层,只负责接收拼接之后的最终的 sql 语句。        最后,service 也不是就非他不可。

    1.5K20

    JAVA中Action层, Service层 ,modle层 和 Dao层的功能区分

    JAVA中Action层, Service层 ,modle层 和 Dao层的功能区分 首先这是现在最基本的分层方式,结合了SSH架构。modle层就是对应的数据库表的实体类。...Action层:引用对应的Service层,在这里结合Struts的配置文件,跳转到指定的页面,当然也能接受页面传递的请求数据,也可以做些计算处理。...Action是一个控制器 首先解释面上意思,service是业务层,dao是数据访问层。...,这样以后维护或者改错比较容易,性能也高一些 简单的说DAO层是跟数据库打交道的,service层是处理一些业务流程的, 至于你说的为什么要用service层封装,我认为:一般来说,某一个程序的有些业务流程需要连接数据库...Service层,引用对应的Dao层数据库操作,在这里可以编写自己需要的代码(比如简单的判断),也可以再细分为Service接口和ServiceImpl实现类。

    97330

    JAVA中Action层, Service层 ,model层 和 Dao层的功能区分

    集成SSH框架的系统从职责上分为四层:表示层、业务逻辑层、数据持久层和域模块层,以帮助开发人员在短期内搭建结构清晰、可复用性好、维护方便的Web应用程序。...Dao主要做数据库的交互工作 Model 是模型 存放你的实体类 Service 做相应的业务逻辑处理 Action是一个控制器 最基本的分层方式,结合了SSH架构。...Service层,引用对应的Dao层数据库操作,在这里可以编写自己需要的代码(比如简单的判断),也可以再细分为Service接口和ServiceImpl实现类。...Action层:引用对应的Service层实现业务逻辑,在这里结合Struts的配置文件,跳转到指定的页面,当然也能接受页面传递的请求数据,也可以做些计算处理、前端输入合法性检验(前端可修改网页绕过前端合法性检验...对象的调用流程:JSP—Action—Service—DAO—Hibernate—数据库。

    28320

    讨论:Service层需要接口吗?

    前几天刷头条又刷到了「Service层和Dao层真的有必要每个类都加上接口吗?」这个问题,之前简单回答了一波,给出的观点是「看情况」 现在结合我参与的项目以及阅读的一些项目源码来看。...我整理了支持Service层和Dao层需要加上接口的理由,总结下来就这么三个: 可以在尚未实现具体Service逻辑的情况下编写上层代码,如Controller对Service的调用 Spring默认是基于动态代理实现...这里推荐一个个人比较喜欢的开发流程,自上向下的编码流程: 先在Controller层编写逻辑,遇到需要委托Service调用的地方,直接先写出调用代码。...一般项目结构都是按层来划分的,如下所示: Controller Service Dao 对于不需要多实现的情况,也就不需要接口了。上面的项目结构即可满足要求。...本文针对「Service层是否需要接口」这个问题,指出需要接口的理由的问题。以及个人对这个问题的观点,希望在评论区写出自己的理解 !

    1.9K40

    JAVA中Action层, Service层 ,model层 和 Dao层的功能区分

    集成SSH框架的系统从职责上分为四层:表示层、业务逻辑层、数据持久层和域模块层,以帮助开发人员在短期内搭建结构清晰、可复用性好、维护方便的Web应用程序。...Dao主要做数据库的交互工作 Model 是模型 存放你的实体类 Service 做相应的业务逻辑处理 Action是一个控制器 最基本的分层方式,结合了SSH架构。...Service层,引用对应的Dao层数据库操作,在这里可以编写自己需要的代码(比如简单的判断),也可以再细分为Service接口和ServiceImpl实现类。...Action层:引用对应的Service层实现业务逻辑,在这里结合Struts的配置文件,跳转到指定的页面,当然也能接受页面传递的请求数据,也可以做些计算处理、前端输入合法性检验(前端可修改网页绕过前端合法性检验...对象的调用流程:JSP—Action—Service—DAO—Hibernate—数据库。

    1.4K30

    SSM框架中Dao层,Mapper层,controller层,service层,model层,entity层都有什么作用「建议收藏」

    model层=entity层。存放我们的实体类,与数据库中的属性值基本保持一致。 service层。...对数据库进行数据持久化操作,他的方法语句是直接针对数据库操作的,而service层是针对我们controller,也就是针对我们使用者。...controller层。控制器,导入service层,因为service中的方法是我们使用到的,controller通过接收前端传过来的参数进行业务操作,在返回一个指定的路径或者数据表。...==================2019.1.20补充================ 在实际开发中的Service层可能被处理为实体Service层,而不是接口,业务逻辑直接写在Service(Class...,不是Interface)层中,Controller直接调用Service,Service调用Mapper。

    1.2K10

    spring+mybatis数据源切换【service层以及controller层】

    一、基本的简单配置 首先是我认为比较好的切换是在service层进行切换,基本思想是利用spring的AbstractRoutingDataSource类进行datasource的选择,就像map的key-value...name="annotationClass" value="org.springframework.stereotype.Repository"/> 做好了这些工作就可以在dao层进行数据源的切换了...切换数据源 然而我们需要在service层或者controller层进行切换,而在进入service时已经开启了一个事务,这时候直接切换数据源是无效的,所以要在service前就切换数据源。...-- 3.根据切面动态切换数据源--> service" expression="execution(* com.test.service...三、直接在controller进行切换,继续探索中 因为项目需要切数据源的地方特别多,在service层切换很费时间,所以准备在controller层进行切换,而尝试了下spring的切面在这里直接切不了

    87910

    Service层代码中FileService.java展示

    Service层代码中FileService.java展示 import com.demo.fileTree.configuration.GlobalConfig; import com.demo.fileTree.model.FileHandleResponse...import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service...并且解压缩后放到服务器响应目录下, * 为什么不直接放压缩包,因为别人看一次,需要解压缩一次,也很浪费系统资源 * * @author xie * @version 1.0 * @Date 2017/5/27 */ @Service.../** * 返回某一结点(即文件夹)的下一级所有子节点,注意这里输入的不是具体文件或者不存在的路径,是已经判定存在的文件夹路径, * 如果是请求具体文件或者不存在的路径,在上一层controller...层就应该将文件内容读取并返回或者返回错误信息 * * @param filePath 项目路径 * @param relativePath 节点相比项目路径的相对路径,比如项目路径

    38300
    领券