有没有大神能详细解读一下DAO和Service的区别和其具体的作用???

求详细解读一下DAO和Service的区别和其具体的作用???,困惑中,求解答。。。。

在MVC架构体系中,DAO担当的是数据访问层,DAO是Data Access Objects的缩写,它主要的职责是与数据库交互,大多是与数据库的表或视图一一对应的,包括的基本方法主要是基于关键字段的数据库增删查改操作。

Service直译是服务的意思,担当业务逻辑层,主要作为控制层和数据访问层的中介作用,Service可以调用任何DAO组件中的函数以实现某种特定功能。

在设计的时候,我们要让DAO层保持单一,就是只对一个数据表进行操作以实现单一功能,涉及到多表操作时,将其写到Service层,封装成针对某项要求的特定方法。

(这只是我个人的理解,不知道对不对,看到没有人回答,就献丑了。)

主要是一个分层的作用,便于代码的管理和编写,以及后期的修改。Dao主要是与数据库进行交互的,它只负责取数据和存入数据操作。其他的操作都不应该由它来实现。
而Service层就是服务层,或者说是逻辑层。在平时的学习过程中可能由于大部分只涉及到增删改查,所以对service层的业务逻辑要求不多。如果当你做复杂一点的业务逻辑项目就会感觉到。分层不会使代码冗杂,繁琐。例如你从jsp页面拿到一堆乱七八糟的数据(这里乱七八糟指的是没有进行合理的类型处理已经封装的)到Action,此时你数据库表的字段并不是这样,或者是你需要做加密处理等。就需要在service层进行处理,使得你的数据传到Dao的时候是直接可以与数据交互的。
简单说就是Service将页面提交的数据整理好,达到与数据库类型一致,或者是自己想要的数据效果。Dao就是将整理好的数据直接放到数据库。使得数据整理与数据交互分开。便于代码书写,管理和阅读。