DAO层和Service层的究极理解--这波我在大气层
- 注重版权,转载请注明原作者和原文链接
作者:码农BookSea
原文链接:https://blog.csdn.net/bookssea/article/details/107488749
先看后赞,养成习惯。
点赞收藏,人生辉煌。
说实话,学了挺久的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层和Service层的究极理解--这波我在大气层相关推荐
- java dao层 service层_Java中DAO层、Service层和Controller层的区别
DAO层: DAO层叫数据访问层,全称为data access object,属于一种比较底层,比较基础的操作,具体到对于某个表的增删改查,也就是说某个DAO一定是和数据库的某一张表一一对应的,其中封 ...
- Java中dao层、service层、controller层、entity层和view层的概述
目录 DAO层:(持久层)主要与数据库进行交互 Service层:(业务层 )控制业务 Controler层:(控制层 )控制业务逻辑 Entity层: (实体层 )数据库在项目中的类 View层: ...
- DAO层、ENTITY层、SERVICE层、CONTROLLER层
dao层.entity层.service层.controller层 2018年08月09日 11:02:31 一江春华终散去 阅读数:3074 版权声明:本文为博主原创文章,未经博主允许不得转载. h ...
- Dao层和Service层的区别
举个栗子: 传统访问数据库的方法非常面向过程,分为以下几步 – 实例化connection – 实例化statement – 通过statement的参数sql语句访问数据库,返回数据进行处理 imp ...
- SpringBoot框架中的DAO(mapper)层、Entity层、Service层、Controller层
Entity层:实体层 数据库在项目中的类 Entity层是实体层,也就是所谓的model,也称为pojo层,是数据库在项目中的类,该文件包含实体类的属性和对应属性的set.get方法: DAO层: ...
- OA系统二十四:请假审批五:【点击“审批”后的审批弹出框】的后台逻辑;(审批结果提交的Dao层和Service层逻辑)
本篇博客的主要内容是:[请假审批内嵌页面],[审批弹出框]的点击"确认提交"后,后台的逻辑:主要是Dao层和Service层这些后台逻辑: 说明: (1)目前来看,为了实现某个功 ...
- pojo层、dao层、service层、controller层的作用
pojo层(model) 实体层 数据库在项目中的类 model是模型的意思,与entity.domain.pojo类似,是存放实体的类. 类中定义了多个类属性,并与数据库表的字段保持一致,一张表对应 ...
- 三层架构编程、DAO层、Entity层、Service层、Controller层
什么是三层架构编程: 本质上所有的项目(应用程序)都是需要和用户交互,然后产生数据,对数据进行处理,最后将数据存储到硬盘这么个过程 在编程中,可以将这个过程分一下层次,最初只分两层,用户层和数据层,但 ...
- SSM框架中各层的含义和联系(Pojos层、Dao层、Service层、Action层......)
一.pojo层 即Plain Ordinary Java Object,也有人称其为model.domain.bean等,pojo层是对应的数据库表的实体类. 二.1.持久层:Dao层(Mapper) ...
- java中DAO层、Service层、Controller层的区别
DAO层: DAO层叫数据访问层,全称为data access object,属于一种比较底层,比较基础的操作,具体到对于某个表的增删改查,也就是说某个DAO一定是和数据库的某一张表一一对应的,其中封 ...
最新文章
- ubuntu ibus谷歌输入法安装
- 数据库为什么使用B+树而不是B树
- 合并分支时有的文件删除了_GitGithub入门教程笔记(4)之分支管理一
- spring boot / cloud (七) 使用@Retryable来进行重处理
- Java 继承学习笔记
- python字节码执行函数_做一个字节码追踪器,从内部理解 Python 的执行过程
- python3中报错的解决方法(长期更新)
- Spring Cloud Config分布式配置中心高可用及配置刷新(学习总结)
- delphi xe 10.4 开发 APP
- STM32—驱动GY85-IMU模块
- 智慧教育教学案例分析
- matlab手眼标定
- ccy测试影响因子版270ms
- java多线程(超详细)
- sina股票接口更新:Kinsoku jikou desu
- EPICS -- synApps -- Autosave
- 2015年小米能否实现1亿部手机的销售目标?
- android 复制asset文件下文件到手机指定路径,手机根目录
- 计算机磁盘在线分区,电脑硬盘分区几个最好?你还把电脑硬盘分成C、D、E、F盘吗?...
- dvb-c usb android,安卓智能DVB-C高清数字机顶盒