精华内容
下载资源
问答
  • DAO层和Service层的究极理解--这波我在大气层
    千次阅读 多人点赞
    2020-07-21 16:47:24

    先看后赞,养成习惯。
    点赞收藏,人生辉煌。

    在这里插入图片描述


    说实话,学了挺久的MVC架构了,到现在也一直没整明白Service层DAO层是干什么用的,哪怕我目前已经学到了Spring Boot,但回过头来看这些基础知识,依然是不明就里。
    感觉Service层并没有做什么实际的工作,只是接受了Servlet,同时又调用了Dao。它本身并没有什么实际意义的代码,感觉并没有什么用处,那为什么还写?这不是增加代码量吗?
    还有DAO层是做什么的?为什么用Service层来调用DAO层?

    在这里插入图片描述

    网上的相关文章我也看了挺多,但大都讲的不是很通俗易懂,看了之后依旧还是很迷糊。
    问了身边的一些大佬同学,也去咨询了下老师,不断求知
    总算整明白了,我把我的心得写下来跟大家做个分享。


    先简单来讲下Dao层,和Service层的概念:

    Service是业务层,Dao是数据访问层,这样的分层是基于MVC架构来说的。

    Dao层:全称为data access object,属于一种比较底层,比较基础的操作,具体到对于某个表、某个实体的增删改查

    Service层:被称为服务,肯定是相比之下比较高层次的一层结构,相当于将几种操作封装起来。

    具体起来,Dao的作用是封装对数据库的访问:增删改查,不涉及业务逻辑,只是达到按某个条件获得指定数据的要求;
    而Service,则是专注业务逻辑,对于其中需要的数据库操作,都通过Dao去实现。


    简单来说就是Dao层是底层,具体到某一张表的增删查改,可以理解为有多少张表就有多少个Dao层,而Service成可以理解为是Dao层的 “上司”,通过Service层来控制Dao层。

    一个Service层控制一个或者多个Dao层。

    举个栗子:Service层好比是老大,手下跟着一大帮小弟 (Dao层), 老大不用亲自出马,有事情吩咐小弟去干就行,老大只管下命令,小弟只管做事跑腿。
    在这里插入图片描述

    而为什么我们要通过Service层去调用Dao层,这样做的最大好处就是:

    解耦

    说的通俗点就是降低代码之间的耦合,尽量让代码之间不要有太大的联系。

    好比主板上内存坏了,我换内存就行,没必要连主板一起换。我不用知道内存是哪家生产,不用知道多大容量,只要是内存就都可以插上这个接口使用。
    在这里插入图片描述

    这样当某部分代码出错或者需要修改时,其他代码就不需要修改或者变更,好处就在这里。

    而 Dao 层,只负责接收最终的 sql 语句,具体到某一张表的增删查改。

    再用上面的老大和小弟的例子,小弟 (Dao层) 脑子一般不太灵光,不具备什么决策能力。能当上老大脑瓜都比较好使,命令由老大去下达,累活脏活交给小弟去干 (增删查改),底下一大帮子小弟听老大指挥,老大叫谁干什么就干什么。最后完成老大布置的任务。

    Service层也不是就非有不可,对于极小的项目而言,加了Service层,反而增加了代码量,而且Dao层中已经预见了可能出现的情况,并进行了相应的扩展。那么,此时就不需要了。

    虽然小弟脑子可能不太好使,但是有些事,你没脑子都能完成啊,这时就不需要老大出马了,不然一点屁大点的事都要麻烦老大,老大也太掉价了吧。

    但是存在即合理,存在Service层肯定有其原因,通过Service层去调用Dao层,不仅可以解耦合,而且可以增加代码的拓展性。


    以上仅是个人的一些当前阶段的理解,如果我有哪里写的不对,欢迎评论区留言进行指正。

    白嫖不好,创作不易。各位的点赞就是我创作的最大动力,我们下篇文章见!
    老铁,如果有收获,请点个免费的赞鼓励一下博主

    在这里插入图片描述

    更多相关内容
  • 简单DAO层示例

    2019-07-26 09:13:11
    NULL 博文链接:https://quicker.iteye.com/blog/666673
  • 该资源内容主要包含:两个版本常用mongoTemplate操作数据库集合语句的整理
  • dao层自动生成

    2018-10-15 11:42:46
    根据数据库表结构 , 自动生成数据库表的对应实体类和dao接口 , 及其包含简单增删改查功能的映射文件
  • 主要介绍了MyBatis开发Dao层的两种方式实现(原始Dao层开发),并对数据库进行增删查改,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • IDEA Spring 多模块 Dao 层单元测试, 此代码只演示Dao层单元测试。。。。。。。。。。。。
  • Java之JDBC连接数据库实现增删改查(2018 使用Dao层实现) 实体类:User.java 接口类:IUserDao.java 实现接口类:UserDaoImpl.java 使用Junit4测试增删改查类:UserDaoTest.java
  • NULL 博文链接:https://ljz0898.iteye.com/blog/1547159
  • 采用java语言开发,原生jdbc编程,dao层和service分离,数据库采用oracle,基于servlet,jsp
  • 插件中封装了一系列数据库操作的类,根据实体模型自动化生成插入、更新、删除、查询语句,Dao层通用函数封装,使用此插件基本上只用写少量的数据库层代码即可完成对数据库的操作。
  • 本工具自动生成DAO层, Manager层, SqlMap, DO等java的class 需求输入标准的mysql标准建表语句. eg: CREATE TABLE IF NOT EXISTS sequence ( k varchar(50) NOT NULL COMMENT '主键名', val int(10) unsigned NOT ...
  • 详解Javaee Dao层的抽取

    2020-08-27 03:17:26
    主要介绍了详解Javaee Dao层的抽取,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • java代码生成器(dao层service层)java代码生成器(dao层service层)
  • mybatisDAO层自动生成插件,使用前需根据自己的操作系统,修改配置文件中代码生成的目录即可。
  • 根据数据库自动生成DAO层以及pojo和sql,有使用方法
  • springMvc+Mybatis 最新版+Dao 封装; 使用了 2016-07-28 maven 上下载的当前最新版本jar包 4.3.2 搭建的 springMVC + Mybatis +DAO 封装..仅供参考学习...
  • 自动生成entity和dao层

    2018-09-28 18:10:57
    java源码有备注说明自动生成java entity和dao层,包含动态的sql语句,增删改查都有,为程序猿专注主要业务逻辑。
  • DAO层_Service层_Controller层、View层介绍

    热门讨论 2013-12-21 13:46:31
    DAO层_Service层_Controller层、View层的一些了解知识,帮助填充对这部分比较空白的开发者们。
  • mybatis带表字段注释生成dao层,pojo,mapper.xml,代码生成
  • 配置好库名及表名,自动生成mybatis所需要的实体类、dao层文件以及增删改查的数据库语句的xml,说明文档已经写在压缩包里面了,简单粗暴
  • mybatis_genertor逆向工程自动生成pojo dao层等类根据数据库表一 一对应 加快开发效率
  • mongoDB DAO层封装

    2015-10-28 14:51:44
    基于mongoDB3.0 和spring data1.5 整合的dao层封装
  • JDBC数据库连接池DBCP jsp页面直接获取DAO层数据 demo
  • MyBatis链接MySql数据库,在Dao层处理的小例子,给初学者学习。有问题可以留言或者联系
  • javadao层的编写

    2014-05-02 18:19:47
    Java的dao层和service层,很不错的哦!
  • NULL 博文链接:https://shizhijian870525.iteye.com/blog/1697846
  • http://blog.csdn.net/u010137431/article/details/46595487该博客中的代码
  • mybatisGenerator 支持生成类注释,属性注释,dao层注释
  • 我们在写java程序的时候。使用mybits需要自己去写表的实体,dao层接口和mapper的xml方法。非常麻烦。该文档可以通过配置一键生成。大大减少开发的时间消耗。
  • Service层和DAO层解析

    2012-06-13 15:52:16
    dao完成连接数据库修改删除...service是面向功能的,一个个功能模块比如说银行登记并完成一次存款,UI要把请求给service,然后service曾将这一个case分解成许多步骤调用底层的实现完成这次存款,dao就是下面那

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 240,200
精华内容 96,080
关键字:

dao层