Java-java中的DAO和Service有什么区别

发布于 2017-01-16 08:09:39 字数 0 浏览 1158 评论 7

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(7

浮生未歇 2017-10-27 00:13:54

service里面会用到DAO来操作数据库,service跟dao的功能不一样,dao是用来对数据库对象的操作,service为上层逻辑提供服务。
例如一个登陆共更能,可以用service提供验证功能,这个功能里面会用一个或数个dao来查询数据库的内容。

虐人心 2017-08-17 15:08:35

service是业务层
dao是数据访问层。

我们都知道,标准主流现在的编程方式都是采用MVC综合设计模式,MVC本身不属于设计模式的一种,它描述的是一种结构,最终目的达到解耦,解耦说的意思是你更改某一层代码,不会影响我其他层代码,如果你会像spring这样的框架,你会了解面向接口编程,表示层调用控制层,控制层调用业务层,业务层调用数据访问层。初期也许都是new对象去调用下一层,比如你在业务层new一个DAO类的对象,调用DAO类方法访问数据库,这样写是不对的,因为在业务层中是不应该含有具体对象,最多只能有引用,如果有具体对象存在,就耦合了。当那个对象不存在,我还要修改业务的代码,这不符合逻辑。好比主板上内存坏了,我换内存,没必要连主板一起换。我不用知道内存是哪家生产,不用知道多大容量,只要是内存都可以插上这个接口使用。这就是MVC的意义。
接下来说你感觉service的意义,其实因为你现在做东西分层次不是那么严格,在一个你们做东西业务本身也少,举个最简单的例子,你做一个分页的功能,数据1000条,你20条在一个页,你可以把这个功能写成工具类封装起来,然后在业务层里调用这个封装的方法,这才是业务里真正干得事,只要没访问数据库的,都要在业务里写。
传送门:http://zhidao.baidu.com/question/364802857.html

想挽留 2017-08-15 02:49:27

Dao是“Data Access Object”的缩写,意思是数据访问对象,所起到的作用说白了就是对数据库的操作对象;而Service是对业务逻辑的基本封装。

泛泛之交 2017-06-02 06:35:18

个人理解:
所谓的DAO和Service,从代码的角度看都是Java类,它们的不同更多体现在它们所面向的东西不一样,或者说它们在软件架构中处的位置不一样.
(1)一般意义上,DAO负责的是数据的存取,而Service负责响应别处的请求,这是它们面向的东西不一样,或者说职责不一样,从人类的角度也能容易理解这2个东西各自负责什么
(2)一个Service所做的事情可能需要多个DAO共同完成,这样我们就需要在Service里做一些封装和逻辑,以使得对外提供的接口足够简单.其实这里也就体现了分层的思想,当当前接口比较复杂或者不想对外暴露时,可以加一层,用于对外提供抽象接口和屏蔽底层逻辑.
换句话说,如果接口足够简单,其实你可以把DAO和service合并成一个东西.不过一般为了方便开发人员理解都分开

灵芸 2017-04-22 08:14:26

service 是服务层 dao是逻辑层
service 一般是接口
dao是实现service 的类

虐人心 2017-04-17 12:41:15

Dao主要完成由实体模型到关系数据库的相互转换,即CURD
service是将具有相互关联的模型的Dao组装到一起,做数据的CURD

说简单点,JDBC中Dao处理一张表,而service要处理一系列相互关联的表。

以上,个人理解~相互交流。

浮生未歇 2017-02-24 19:31:07

关于dao层和service层的各自处理的东西,楼上各位已经给出了详细的解答,我就简略的说下,dao层是对数据操作层,对数据库的增删改查的操作,都在这个结构里面实现,service层是业务逻辑处理层,service的另一个主要作用是用来控制事务,当一个数据库操作出错时,可以及时回滚,不会出现对数据的错误处理。在具体点可以百度下,

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文